4
使用SimpleMembership開發ASP.Net MVC 4網站,即使用戶已登錄,登錄GET控制器有時也會被調用。到目前爲止,這僅發生在開發過程中(我們不在QA), ,並且只能修改.cshtml頁面。它發生偶爾修改.cshtml頁面後,不一致。SimpleMembership向認證用戶呈現登錄表格
我已經將日誌記錄添加到模板提供的Login()
方法中,並且看到用戶確實已通過身份驗證,並具有登錄用戶應擁有的所有角色。
[AllowAnonymous]
public ActionResult Login(string returnUrl)
{
if (User.Identity.IsAuthenticated)
{
logger.Error("User " + User.Identity.Name + " is authenticated shown login form. Roles: " + string.Join(", ", Roles.GetRolesForUser(User.Identity.Name)));
// Temporary work-around: WebSecurity.Logout();
}
ViewBag.ReturnUrl = returnUrl;
return View();
}
問題
- 是什麼原因造成這種現象?
- 這可以發生在生產系統中,例如如果應用程序域被回收?
- 在從安全角度返回登錄視圖聲音之前調用
WebSecurity.Logout()
是否有解決方法?
如果User.Identity.IsAuthenticated爲true,我從未見過從ASP.NET運行時重定向。你檢查過來自瀏覽器的網絡請求嗎?即它絕對是一個受保護資源的重定向? – 2013-02-15 08:48:44
我沒有直接觀察它*網絡請求*(它偶爾發生),但它總是發生在刷新視圖時,我做了一個小的編輯(編輯.cshtml)。因此,它總是通過刷新需要認證和特定角色的控制器來觸發。 – 2013-02-15 18:18:23