Dot-Net

ASP.NET 身份兩個因素不起作用 - Cookie 問題?

  • July 8, 2014

背景:

我一直在這裡Identity-Sample使用微軟團隊提供的項目:

我已將Identity-Sample項目和預發布 nuget 包集成到現有項目中,該項目以前使用最新穩定版本的 Identity。

問題:

嘗試 2FA 時,在Account/SendCode方法內部會呼叫GetVerifiedUserIdAsync() ,這是Microsoft.AspNet.Identity.Owin.SignInManager 類的一部分。(在這裡查看完整程式碼

GetVerifiedUserIdAsync()正在返回 null(即,即使我使用 1 個因素登錄,它也找不到經過驗證的使用者。)我相信它沒有找到正確的 cookie。

當我執行該Identity-Sample應用程序時,我的瀏覽器顯示_RequestVerificationTokenAND TwoFactorCookie& 一切正常。

當我執行自己的應用程序時,我的瀏覽器只顯示_RequestVerificationTokencookie 並且我得到了null.

問題:(如果 cookie 是問題)

SignInManager.PasswordSignInAsync(...)當呼叫方法時(內部) ,如何讓我的應用程序正確設置 cookie Account/Login

在 Startup.Auth 類中註冊 cookie

app.UseTwoFactorSignInCookie(DefaultAuthenticationTypes.TwoFactorCookie, TimeSpan.FromMinutes(5));

在登錄頁面發布操作中,如果您使用新的 SigninManager.PasswordSigninAsync,如果對使用者啟用 2 FA,它將設置間歇性 cookie 並返回 SignInStatus.RequiresVerification。然後您可以使用 SigninManager.GetVerifiedUserAsync 應該返回使用者 ID

引用自:https://stackoverflow.com/questions/24578977