ASP.NET Core 2.0 Identity 2FA с использованием SMS, без проверки подлинности после TwoFactorSignInAsync () с несколькими схемами - PullRequest
0 голосов
/ 26 сентября 2018

У меня есть решение ASP.NET Core 2.0, и я скопировал функциональность для SMS 2FA из версии 1.1.Все хорошо, я получаю смс с кодом, проверяю код и _signInManager.TwoFactorSignInAsync result.Succeeded = true.

Однако у меня есть 2 схемы, определенные в моем автозагрузке.Обычные пользователи и администраторы.У пользователей с правами администратора 2FA включен, у обычных пользователей нет.

  services.ConfigureApplicationCookie(options =>
            {
                options.LoginPath = "/Account/LogIn";                  
                options.ExpireTimeSpan = TimeSpan.FromMinutes(5);
                options.Cookie.SecurePolicy = CookieSecurePolicy.Always;


            });


 services.AddAuthentication(options =>
            {
                options.DefaultScheme = 
 CookieAuthenticationDefaults.AuthenticationScheme;
                options.DefaultChallengeScheme = CookieAuthenticationDefaults.AuthenticationScheme;
            }).AddCookie("User", options =>
                   {
                       options.LoginPath = "/Account/LogIn";
                       options.AccessDeniedPath = "/Account/AccessDenied";
                   })
                   .AddCookie("Admin", options =>
                   {
                       options.LoginPath = "/Admin/Login";
                       options.AccessDeniedPath = "/Admin/AccessDenied";
                   });

А затем на AdminController у меня так: [Authorize(AuthenticationSchemes = "Admin")]

Поток идет так:

  • перенаправление на правильную страницу входа
  • имя пользователя + пароль успешный вход
  • после успеха я перенаправлен на проверку кода SMS
  • проверка успешности * перенаправление 1019 *
  • на Индексную страницу администратора, вернете ли вы меня на страницу входа вместо аутентификации.

Есть идеи, что я делаю неправильно?

...