C# 设置通过表单身份验证记住用户的时间
在我的asp.net web窗体应用程序中,我使用窗体身份验证。我对这件事感到困惑: My web.config有: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分钟。我认
<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。