[英]Why does authentication timeout log the user out, but not bring them back to the log on page?
Web.config:
<system.web>
<authentication mode="Forms">
<forms loginUrl="~/Account/LogOn" timeout="1" />
</authentication>
<sessionState mode="InProc" cookieless="false" timeout="1"></sessionState>
</system.web>
注冊:
FormsAuthentication.SetAuthCookie(model.UserName, false);
在我的LogOn方法中,我還設置了一個Auth Cookie:
FormsAuthentication.SetAuthCookie(model.UserName, model.RememberMe);
記住我永遠是假的。
在我的導航欄中,我有一個條件來檢查請求是否已通過身份驗證,如果未通過,則顯示登錄按鈕。
@if(Request.IsAuthenticated)
{....}
else
{
<ul class="nav nav-pills">
<li role="presentation">@Html.ActionLink("Home", "Index", "Home", null, new { title = "Return to the homepage" })</li>
<li role="presentation">@Html.ActionLink("Log On", "LogOn", "Account", null, new { title = "To Logon to the site." })</li>
</ul>
}
一分鍾后,我非常確定用戶已注銷,因為Nav顯示登錄按鈕,而不是注銷按鈕,但是當我單擊鏈接時,它將帶我到該頁面,而不是重定向到登錄頁面。
可能是因為我尚未將[Authorize]屬性添加到控制器方法中嗎? 我是.NET MVC開發的初學者,因此非常感謝所有幫助。
是的,要使站點知道您希望用戶登錄,必須將[Authorize]
裝飾器添加到控制器或單個操作中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.