问题描述: 在ASP.NET Core 3.1中,使用Chrome浏览器时,无法在HTTP上保持AspNet.Consent Cookie的持久化。这可能导致用户在每次会话中都需要重新同意Cookie。
解决方法: 要解决这个问题,可以通过设置Cookie的SameSite属性为None来解决。同样,还需要配置Cookie的Secure属性为true,以确保它只在HTTPS连接上发送。
在Startup.cs文件的ConfigureServices方法中添加以下代码:
services.Configure(options =>
{
options.CheckConsentNeeded = context => true;
options.MinimumSameSitePolicy = SameSiteMode.None;
});
services.AddSession(options =>
{
options.Cookie.SecurePolicy = CookieSecurePolicy.Always;
options.Cookie.SameSite = SameSiteMode.None;
});
然后,在Startup.cs文件的Configure方法中添加以下代码:
app.UseCookiePolicy();
app.UseSession();
这样,AspNet.Consent Cookie就会在HTTP上持久化,并且在Chrome浏览器中正常工作。
希望这个解决方法能帮助到你!