1
我的一個控制器動作拒絕認證,我不明白爲什麼。這只是從Visual Studio中的標準的MVC 5項目模板的標準附加碼行動,它看起來像這樣: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視圖沒有問題。
我沒有任何自定義授權過濾器。這到底是怎麼回事?
找到它們。它們的設置如上所述。 –
你在控制器上設置了哪些標誌? –