我是新来的使用双重身份验证的人,并且有问题。单击短信代码验证按钮后出现错误。我正在注册,然后输入短信代码,错误是
提供的防伪令牌是针对与当前用户不同的基于声明的用户的。
我正在使用
Microsoft.AspNet.Identity.Core v2.2.2
Microsoft.AspNet.Identity.Owin v2.2.2
我正在尝试对每次登录使用SMS身份验证。在我的控制器中,方法的顺序是这样的,
用于注册:
await UserManager.CheckUserDuplicate(user);
await UserManager.CreateAsync(user, model.Password);
await UserManager.AddToRoleAsync(user.Id, FrSettings.Settings.DefaultRole);
await UserManager.SetTwoFactorEnabledAsync(user.Id, true);
string code = await UserManager.GenerateChangePhoneNumberTokenAsync(user.Id, user.CepNo);
var message = new IdentityMessage
{
Destination = user.CepNo,
Body = SystemMessage.SmsMessage + code
};
SignInStatus resultSignIn = await SignInManager.PasswordSignInAsync(user.UserName, model.Password, false, false);
switch (resultSignIn)
{
case SignInStatus.Success:
await UserManager.SmsService.SendAsync(message);
break;
case SignInStatus.LockedOut:
break;
case SignInStatus.RequiresVerification:
await UserManager.SmsService.SendAsync(message);
break;
case SignInStatus.Failure:
break;
default:
throw new ArgumentOutOfRangeException();
}
并用于登录:
await UserManager.ChangePhoneNumberAsync(User.Identity.GetUserId(), User.Name(), model.SmsCode);
我的登录尚未完成,但是我的第一种方法是。请不要避免提出有关正确和安全登录的建议。
如果需要有关项目的更多信息,我可以更新!。
更新信息1 :
登录或注册后,我没有使用重定向。我在所有页面操作中都使用ajax。