簡體   English   中英

設置通過表單身份驗證記住用戶的時間

[英]Set how long a user is remembered with forms authentication

在我的asp.net Web表單應用程序中,我正在使用表單身份驗證。 我對這件事感到困惑:

我的web.config具有:

  <authentication mode="Forms">
    <forms loginUrl="Login.aspx" defaultUrl="Welcome.aspx">
    </forms>
  </authentication>

我的登錄按鈕如下所示:

    protected void Login_Click(object sender, EventArgs e)
    {
        if (AuthenticateUser(UserNametxt.Text, Passwordtxt.Text))
        {
            FormsAuthentication.RedirectFromLoginPage(UserNameTextBox.Text, RememberMeCheckBox.Checked);
        }
        else
        {
            MessageLbl.Text = "Wrong UserName and/or Password.";

        }
    }

<forms >具有可以設置的屬性timeout="" 我了解默認情況下該屬性為30或30分鍾。 我認為該timeout屬性用於設置使用FormsAuthentication.RedirectFromLoginPage(UserNameTextBox.Text, RememberMeCheckBox.Checked)來記住選中我的復選框的用戶被記住的時間,但是從我在線閱讀的內容來看,timeout屬性是登出前您可以在網頁上閑置多長時間。

如果是這樣,如何通過使用表單身份驗證檢查RememberMeCheckBox用戶的時間?

我了解默認情況下該屬性為30或30分鍾。 我認為此超時屬性用於設置使用FormsAuthentication.RedirectFromLoginPage(UserNameTextBox.Text,RememberMeCheckBox.Checked)來記住選中我的復選框的用戶要記住多長時間。

是的,你是對的。 FormsAuthentication超時默認值為30分鍾


我在網上閱讀的內容看起來像是timeout屬性,即您可以在退出之前閑置多長時間。

這稱為SessionState超時。 SessionState超時默認值為20分鍾

已更新評論(9/12/2014)

因此,如果我將SessionState超時設置為48小時,這是否意味着單擊“記住我”復選框的用戶將被記住並在48小時內通過該網站上的表單身份驗證自動進行身份驗證? (鑒於我上面的代碼)

如果將SessionState超時設置為48小時,則在用戶登錄后,該用戶可以使瀏覽器空閑48小時,而無需注銷。

因此,您的問題的答案為否。

在您的問題中,您只希望用戶在48小時內無需登錄。 如果是這樣,則需要將FormAuthentication超時設置為48小時。

以下設置將永久性Cookie設置為在48小時后過期。

<authentication mode="Forms">
   <forms ... timeout="2880">
   </forms>
</authentication>

您需要通過使用Cookies並設置其到期日期時間來做到這一點。 如果存在Cookie,請將其刪除。 設置一個具有您首選的到期日期時間的新cookie。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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