.net core 'Response.Cookies.Append' not working as some station

前端 未结 1 1704
感动是毒
感动是毒 2021-02-07 05:26

I am using \'Response.Cookies.Append\' for setting the culture as suggested in ASP.NET Core 2.1 docs (https://docs.microsoft.com/en-us/aspnet/core/fundamentals/localization?view

相关标签:
1条回答
  • 2021-02-07 06:22

    You might have a configured CookiePolicyOption in your Startup.cs in your ConfigureServices-Method.

    services.Configure<CookiePolicyOptions>(options =>
      {
          // This lambda determines whether user consent for non-essential cookies is needed for a given request.
          options.CheckConsentNeeded = context => true;
          options.MinimumSameSitePolicy = SameSiteMode.None;
      });
    

    If thats the case, you can set the cookie with the CookieOption.IsEssential = true like so:

    var cookieOptions = new Microsoft.AspNetCore.Http.CookieOptions()
        {
          Path = "/", HttpOnly = false, IsEssential = true, //<- there
          Expires = DateTime.Now.AddMonths(1), 
        };
    

    Update: If you are using SameSiteMode.None, you also have to set the "Secure" property to true. The cookie will work with https only

    Alternativly SameSiteMode.Unspecified does work without https/secure-flag

    Source: https://docs.microsoft.com/en-us/aspnet/core/security/samesite?view=aspnetcore-3.1

    0 讨论(0)
提交回复
热议问题