簡體   English   中英

為什么身份驗證超時會將用戶注銷,而不將他們帶回到登錄頁面?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM