AspNet Core Identity, how set options.Cookie.SameSite?

后端 未结 3 997
没有蜡笔的小新
没有蜡笔的小新 2021-01-04 11:07

In the latest templates and libraries used httpsonly flag. How can I turn it off?

This same question is outdated and it did not have full configuration sample:

相关标签:
3条回答
  • 2021-01-04 11:45

    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;
            });
    
    0 讨论(0)
  • 2021-01-04 11:59

    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.

    0 讨论(0)
  • 2021-01-04 12:02

    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.

    This 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;
    });
    
    0 讨论(0)
提交回复
热议问题