Один из моих действий с контроллером отказывается аутентифицироваться, и я не могу понять, почему. Это просто стандартная VerifyCode действие от стандартной MVC 5 шаблон проекта в Visual Studio, и это выглядит следующим образом:AllowAnonymous работает с перерывами в ASP.NET MVC 5
[AllowAnonymous]
public async Task<ActionResult> VerifyCode(string provider, string returnUrl, bool rememberMe)
{
if (!await SignInManager.HasBeenVerifiedAsync())
{
return View("Error");
}
return View(new VerifyCodeViewModel { Provider = provider, ReturnUrl = returnUrl, RememberMe = rememberMe });
}
Всякий раз, когда мое приложение попадает этот контроллер без вошедшего в систему пользователя, он отправляет пользователя обратно на входе в систему экран, хотя он украшен AllowAnonymous. Напротив, это стандартное действие контроллера:
[AllowAnonymous]
public ActionResult ForgotPassword()
{
return View();
}
Работает нормально, если ударил напрямую без входа пользователя.
Так, чтобы попытаться выяснить, что происходит, я добавил следующие тестовые действия в мой контроллер:
// to see if it's down to the parameters
[AllowAnonymous]
public ActionResult VerifyCode()
{
return View(new VerifyCodeViewModel { Provider = "", ReturnUrl = "", RememberMe = false });
}
// to see if it's down to the action name
[AllowAnonymous]
public ActionResult VerifyCod()
{
return View(new VerifyCodeViewModel { Provider = "", ReturnUrl = "", RememberMe = false });
}
// to see if it's down to the viewmodel
[AllowAnonymous]
public ActionResult ForgotPassword()
{
return View(new VerifyCodeViewModel { Provider = "", ReturnUrl = "", RememberMe = false });
}
Попасть в первые два из этих причин мое приложение, чтобы отправить меня обратно на страницу входа в систему. Нажатие на третье место делает просмотр ForgotPassword без проблем.
У меня нет настраиваемых фильтров авторизации. Что может быть здесь?
Найдено, что они нашли. Они настроены так, как описано. –
Какие флаги установлены на самом контроллере? –