.Net Core Identity 無法登入
前言 前陣子使用Blazor Assembly寫的一個Side Project給家人使用,這兩天反應無法登入,一直跳回Login。在反應的當下,我測試都正常,直到今天早上要登入時,出現了同樣的問題。 http status回應200,沒有任何錯誤訊息。 執行版本 .Net Core 3.1 Blazor Assembly 3.2.0 Microsoft.AspNetCore.Identity 3.1.7 原因 檢查console及Response Header,有警告訊息"Identity.External samesite=none; httponly...",判斷應該chrome 85針對SameStie更嚴格的限制造成的。 圖片來源 Ps:忘了擷圖XD,引用一張相似的。 關於SameStie SameStie是防止第三方Cookie的存取。 Strict : 嚴格限制。 Lax : 只有Get 可以存取,Post不行。 本來預設是None ,Chrome在80之前會通知你要修改為Lax。 80之後,Lax為Chrome的預設值。意思是你不設定的話,預設為Lax。 ps:目前的 程式不用更動 。 .net 4.7.2 及 4.8後,Session,Cookie ,Form Auth Cookie 已預設為Lax None : 在https下,Secure設為true,第三方才可以存取。 解決方式 將Identity相關Cookie由原于的none設置成Lax。 1.設定Lax services.ConfigureExternalCookie(options => { options.Cookie.SameSite = Microsoft.AspNetCore.Http.SameSiteMode.Lax; ...