设置用户通过表单身份验证记住的时间

时间:2014-09-11 19:58:26

标签: c# asp.net webforms

在我的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&GT;有一个你可以设置的属性timeout=""。据我所知,默认情况下该属性为30或30分钟。我认为这个超时属性是设置用户FormsAuthentication.RedirectFromLoginPage(UserNameTextBox.Text, RememberMeCheckBox.Checked)会记住检查我的复选框的用户多长时间,但是从我在线阅读的内容看起来超时属性是你可以闲置的时间长度退出之前的网页。

如果是这样,我如何通过使用表单身份验证检查RememberMeCheckBox来设置用户被记住多长时间?

2 个答案:

答案 0 :(得分:1)

  

据我所知,默认情况下该属性为30或30分钟。一世   以为这个超时属性是设置用户多长时间   检查我的记住的复选框将被记住   FormsAuthentication.RedirectFromLoginPage(UserNameTextBox.Text,   RememberMeCheckBox.Checked)

是的,你是对的。的 FormsAuthentication timeout default value is 30 minutes 即可。


  

我在网上看到的看起来像超时属性是多长时间   在退出之前可以在网页上闲置。

它被称为SessionState超时。的 SessionState time out default value is 20 minutes 即可。

更新了评论(2014年9月9日)

  

因此,如果我将SessionState超时设置为48小时,那是否意味着   点击我的用户&#34;记住我&#34;复选框将被记住并且   通过该网站上的表单身份验证自动进行身份验   48小时? (根据我的上述代码)

如果将SessionState时间设置为48小时,则在用户登录后,用户可以在不注销的情况下将浏览器闲置最多48小时。

所以您的问题的答案是否定的。

在您的问题中,您只需要用户不需要登录48小时。如果是这样,您需要将FormAuthentication时间设置为48小时。

以下设置将持久性Cookie 设置为48小时后过期。

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

答案 1 :(得分:-1)

您需要使用Cookie并设置其到期日期时间。如果Cookie存在,请将其删除。使用您首选的到期日期时间设置一个新的cookie。