[英]I have problem using ReflectionIT.Mvc.Paging for pagination in my Asp.NET Core 2.2 project
[英]Problem with IsAuthenticated in ASP.NET Core 2.2 MVC
我在使用User.Identity.IsAuthenticated
遇到了特定問題。 如果我在 Chrome 中打開一個新選項卡並進入我的環境,例如: https://localhost:5001
,它會正常打開並將我重定向到主頁(因為我已經登錄)。
但是,如果我通過一個鏈接打開該站點,例如:我收到一個 email 並且它具有鏈接https://localhost:5001
,如果我單擊鏈接我剛剛重定向到登錄屏幕。
但是由於我已經登錄,所以正確的方法是重定向到家,如果我按 f5,系統會將我重定向到家。
查看代碼中的調試,在我的操作中,它說明User.Identity.IsAuthenticated = false
現在,當我按 f5 進行調試時,它返回 true
我的啟動代碼是這樣的
services.ConfigureApplicationCookie(options =>
{
options.LoginPath = "/Security/Login";
options.LogoutPath = "/Security/Logout";
options.AccessDeniedPath = "/Security/AccessDenied";
options.SlidingExpiration = true;
options.ExpireTimeSpan = TimeSpan.FromDays(15);
options.Cookie = new CookieBuilder
{
HttpOnly = true,
Name = ".CustomName",
Path = "/",
SameSite = SameSiteMode.Strict,
SecurePolicy = CookieSecurePolicy.SameAsRequest,
Expiration = TimeSpan.FromDays(15)
};
});
如果您將 SameSite 設置為 Strict,您的 cookie 將僅在第一方上下文中發送。 在用戶方面,只有當 cookie 的站點與瀏覽器的 URL 欄中當前顯示的站點匹配時,才會發送 cookie。 當用戶在您的站點上時,cookie 將按預期隨請求一起發送。 但是,當通過鏈接進入您的站點時,例如從另一個站點或通過朋友的 email,在初始請求中不會發送 cookie。
請改用SameSiteMode.Lax
。 這將讓瀏覽器包含一個身份驗證 cookie,其中包含來自不同來源(如郵件)的鏈接。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.