gpt4 book ai didi

c# - .Net Core cookie不会被设置

转载 作者:行者123 更新时间:2023-12-02 07:13:18 31 4
gpt4 key购买 nike

在.Net Core MVC项目中:我试图在我的 Controller 操作中以最简单的方式设置一个简单的cookie,但无法让它持久化并显示在浏览器中。

我的代码:

public IActionResult IndexPost()
{
var option = new CookieOptions();
option.Expires = DateTime.Now.AddMinutes(60);
Response.Cookies.Append(cookieName, "SomeCookieValue", option);
return View();
}

但是在浏览器(Chrome)中我看不到它,甚至无法阅读它:

var cookieValue = Request.Cookies[cookieName];

(cookieName 是一个带有 cookie 名称的变量集)

如果使用 Chrome 扩展“EditThisCookie”,我可以手动设置它以确保 Request.Cookies[cookieName] 实际工作,因此错误以某种方式出现在我的代码的 Append-cookie 中。

最佳答案

从 ASP.NET Core 2.1 开始,模板在 Startup.cs 中包含符合 GDPR 标准的 CookiePolicyOptions 配置,即:

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

CheckConsentNeeded 选项 true 将阻止在未经用户明确许可的情况下将任何非必要的 Cookie 发送到浏览器(无 Set-Cookie header )。

您可以更改此行为,或者在创建 Cookie 时将 IsEssential 属性设置为 true 将 Cookie 标记为必需:

var options = new CookieOptions
{
Expires = DateTime.Now.AddMinutes(60),
IsEssential = true
};

Response.Cookies.Append("rudeCookie", "I don't need no user to tell me it's ok.", options);

在此处了解更多信息:https://learn.microsoft.com/en-us/aspnet/core/security/gdpr?view=aspnetcore-2.1

关于c# - .Net Core cookie不会被设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52456388/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com