Asp.Net Mvc Identity&Owin两因素身份验证的真正方法

时间:2018-10-28 20:53:00

标签: c# asp.net-mvc asp.net-identity claims-based-identity owin-middleware

我是新来的使用双重身份验证的人,并且有问题。单击短信代码验证按钮后出现错误。我正在注册,然后输入短信代码,错误

  

提供的防伪令牌是针对与当前用户不同的基于声明的用户的。

正在使用

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。

0 个答案:

没有答案