Nano Hash - криптовалюты, майнинг, программирование

Asp.Net Mvc Identity&Owin верный способ двухфакторной аутентификации

Я новичок в использовании двухфакторной аутентификации и у меня проблемы. Ошибка возникает после нажатия кнопки подтверждения смс-кода. Я регистрируюсь, а затем ввожу смс-код ошибка,

Предоставленный маркер защиты от подделки предназначался для другого пользователя на основе утверждений, отличного от текущего пользователя.

Я использую

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 на одной странице для всех действий с учетной записью.


  • Посмотрите, поможет ли это. 29.10.2018
  • Спасибо за ответ, но не информация для меня :/ 29.10.2018

Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..