Я впервые использую двухфакторную аутентификацию, и у меня возникли проблемы. После нажатия кнопки проверки кода смс возникает ошибка. Я регистрируюсь и затем ввожу код смс: ошибка есть,
Предоставленный маркер защиты от подделки предназначен для пользователя, основанного на утверждениях, отличного от текущего пользователя.
Я использую
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 на одной странице для всех действий учетной записи.