У меня есть решение 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 *
- на Индексную страницу администратора, вернете ли вы меня на страницу входа вместо аутентификации.
Есть идеи, что я делаю неправильно?