AspNet Core Identity, how set options.Cookie.SameSite?
In order to configure the application cookie when using Identity, you can use the ConfigureApplicationCookie
method inside your Startup’s ConfigureServices
:
// add identity
services.AddIdentity<ApplicationUser, IdentityRole>();
// configure the application cookie
services.ConfigureApplicationCookie(options =>
{
options.Cookie.SameSite = SameSiteMode.None;
});
Since Identity essentially adds cookie authentication under the hood, this is the configure action is the same thing you would normally pass to AddCookie()
when configuring cookie authentication. It’s just that since AddIdentity()
takes care of setting up authentication for you, the ConfigureApplicationCookie
offers a way to adjust the cookie authentication options afterwards.
The answer by @poke did not help me set the value to SameSiteMode.None
, atleast not in ASP.NET core 2.1.
Any value you set in configure application cookie is overridden by the MinimumSameSitePolicy
setting of the cookie policy middleware.
To prevent the override, set MinimumSameSitePolicy
for the UseCookiePolicy
extension as SameSiteMode.None
.
app.UseCookiePolicy(new CookiePolicyOptions
{
MinimumSameSitePolicy = SameSiteMode.None
});
Then set the actual same site value in the AddCookie extension in the ConfigureServices
method
services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme)
.AddCookie(options =>
{
options => options.Cookie.SameSite = SameSiteMode.None;
});
For my case in asp.net core 3.1 two things in combination did the trick
services.ConfigureApplicationCookie(options =>
{
options.Cookie.SameSite = SameSiteMode.Unspecified;
});
services.AddAntiforgery(opts => {
opts.Cookie.SameSite = SameSiteMode.Unspecified;
});