[英].Net Core cookie will not be set
在 .Net Core MVC 項目中:我試圖在我的控制器操作中以最簡單的方式設置一個簡單的 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 2.1的核心開始,該模板包括你的GDPR兼容配置CookiePolicyOptions
在Startup.cs,即:
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 標頭)。
您可以更改此行為,或通過在創建時將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 : //docs.microsoft.com/en-us/aspnet/core/security/gdpr?view=aspnetcore-2.1
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.