Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/265.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 设置通过表单身份验证记住用户的时间_C#_Asp.net_Webforms - Fatal编程技术网

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

C# 设置通过表单身份验证记住用户的时间,c#,asp.net,webforms,C#,Asp.net,Webforms,在我的asp.net web窗体应用程序中,我使用窗体身份验证。我对这件事感到困惑: My web.config有: <authentication mode="Forms"> <forms loginUrl="Login.aspx" defaultUrl="Welcome.aspx"> </forms> </authentication> 具有可设置的属性timeout=“。我知道默认情况下,该属性为30或30分钟。我认

在我的asp.net web窗体应用程序中,我使用窗体身份验证。我对这件事感到困惑:

My web.config有:

  <authentication mode="Forms">
    <forms loginUrl="Login.aspx" defaultUrl="Welcome.aspx">
    </forms>
  </authentication>
具有可设置的属性
timeout=“
。我知道默认情况下,该属性为
30
或30分钟。我认为此超时属性用于设置选中要记住的复选框的用户将被
FormsAuthentication.RedirectFromLoginPage(UserNameTextBox.Text,rememberCheckbox.checked)记住多长时间
,但从我在线阅读的内容来看,timeout属性似乎是指在注销之前,你可以在网页上空闲多长时间


如果这是真的,我如何通过使用表单身份验证选中
remembercheckbox
来设置用户被记住的时间?

您需要使用Cookies并设置其过期日期时间来完成此操作。如果Cookie存在,请将其删除。使用您首选的过期日期和时间设置新cookie

我理解,默认情况下,该属性为30或30分钟。我 我认为这个timeout属性是用来设置用户 选中我要记住的复选框将被记住 FormsAuthentication.RedirectFromLoginPage(用户名TextBox.Text, RememberMeCheckBox.Checked)

是的,你说得对


我在网上读到的,超时属性似乎是你需要多长时间 可以在注销前在网页上处于空闲状态

这称为会话状态超时

更新意见(2014年9月12日)
那么,如果我将SessionState超时设置为48小时,这意味着什么 单击我的“记住我”复选框的用户将被记住,并且 通过该网站上的表单身份验证自动进行身份验证 48小时?(根据我的上述代码)

如果将SessionState time out设置为48小时,则在用户登录后,用户可以让浏览器闲置48小时而不注销

所以你的问题的答案是否定的

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

<authentication mode="Forms">
   <forms ... timeout="2880">
   </forms>
</authentication>
以下设置设置持久cookie将在48小时内过期

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


为什么不创建一个方法,根据有效的用户\密码和身份验证来增加会话超时时间。。或者,您也可以增加web papge Timeout.:“当RememberSet属性为true时,发送到用户计算机的身份验证cookie将在50年后过期,使其成为用户下次访问网站时使用的持久cookie。”因此,默认情况下,您无法更改该值。您可以使用超时,而无需滑动过期。当然,在这种情况下,你不会有非活动超时…因此,如果我将SessionState超时设置为48小时,这是否意味着单击我的“记住我”复选框的用户将被记住,并在该网站上通过表单身份验证自动验证48小时?(给出了我上面的代码)但是每次点击都会提前超时(默认情况下),所以如果你每天访问这个网站…它永远不会过期。滑动过期必须为false。如果发出请求且超过一半的超时时间间隔已过,则cookie过期将重置,这是正确的。如果您在48小时内未访问该站点,则持久cookie将过期。如果您担心安全性,可以将SlidingExpiration设置为false。