簡體   English   中英

.Net Core cookie 不會被設置

[英].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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM