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;
        });