背景:
我一直在使用微软团队提供的Identity-Sample
项目:
我已经集成了CCD_ 2项目&将nuget包预发布到现有项目中,该项目以前使用的是Identity的最新稳定版本。
问题:
当尝试2FA时,在Account/SendCode
方法内部,有一个对GetVerifiedUserIdAsync()
的调用,它是Microsoft.AspNet.Identity.Owin.SignInManager
类的一部分。(请参阅此处的完整代码(
GetVerifiedUserIdAsync()
返回null(即,它找不到经过验证的用户,即使我已使用1因子登录。(我认为它没有找到正确的cookie
当我运行Identity-Sample
应用程序时,我的浏览器显示_RequestVerificationToken
AND TwoFactorCookie
&一切正常。
当我运行自己的应用程序时,我的浏览器只显示_RequestVerificationToken
cookie&我得到null
。
问题:(如果cookie是问题所在(
当调用SignInManager.PasswordSignInAsync(...)
方法时(在Account/Login
内部(,我如何让我的应用程序正确设置cookie?
在Startup.Auth类中注册cookie
app.UseTwoFactorSignInCookie(DefaultAuthenticationTypes.TwoFactorCookie, TimeSpan.FromMinutes(5));
在登录页面后操作中,如果您使用新的SigninManager.PasswordSigninAsync,它将在用户上启用2 FA的情况下设置间歇性cookie,并返回SignInStatus.RequiresVerification。然后您可以使用SigninManager.GetVerifiedUserAsync应返回用户ID