ASP.NET 身份兩個因素不起作用 - Cookie 問題?
背景:
我一直在這裡
Identity-Sample使用微軟團隊提供的項目:我已將
Identity-Sample項目和預發布 nuget 包集成到現有項目中,該項目以前使用最新穩定版本的 Identity。問題:
嘗試 2FA 時,在
Account/SendCode方法內部會呼叫GetVerifiedUserIdAsync(),這是Microsoft.AspNet.Identity.Owin.SignInManager類的一部分。(在這裡查看完整程式碼)
GetVerifiedUserIdAsync()正在返回 null(即,即使我使用 1 個因素登錄,它也找不到經過驗證的使用者。)我相信它沒有找到正確的 cookie。當我執行該
Identity-Sample應用程序時,我的瀏覽器顯示_RequestVerificationTokenANDTwoFactorCookie& 一切正常。當我執行自己的應用程序時,我的瀏覽器只顯示
_RequestVerificationTokencookie 並且我得到了null.問題:(如果 cookie 是問題)
SignInManager.PasswordSignInAsync(...)當呼叫方法時(內部) ,如何讓我的應用程序正確設置 cookieAccount/Login?
在 Startup.Auth 類中註冊 cookie
app.UseTwoFactorSignInCookie(DefaultAuthenticationTypes.TwoFactorCookie, TimeSpan.FromMinutes(5));在登錄頁面發布操作中,如果您使用新的 SigninManager.PasswordSigninAsync,如果對使用者啟用 2 FA,它將設置間歇性 cookie 並返回 SignInStatus.RequiresVerification。然後您可以使用 SigninManager.GetVerifiedUserAsync 應該返回使用者 ID