如果用户继续使用该网站,我希望他们保持登录状态。在web.config中设置超时仅设置他们上次登录的截止日期-
<authentication mode="Forms">
<forms loginUrl="~/Account/User/SignIn" slidingExpiration="true" timeout="43200" defaultUrl="~/account/" />
</authentication>
因此,无论他们是否每天使用网站,他们都将在30天内自动注销。正在重置每个页面上的到期日期加载正确的解决方案,就像这样-
HttpCookie cookie = Request.Cookies[".ASPXAUTH"];
if (!cookie.Value.IsEmpty())
{
cookie.Expires = DateTime.Now.AddMinutes(Convert.ToInt32(43200));
Response.Cookies.Set(cookie);
}
答案 0 :(得分:1)
您已将滑动到期属性设置为true,因此除了等待15天进行测试外,您无需执行任何其他操作。
如果提出请求并且超过了超时间隔的一半,则滑动到期时间将重置有效身份验证cookie的到期时间。
以上内容来自microsoft。
即使您一直处于打开状态,直到至少一半的超时值都到期,也不会重置到期,因此在您的情况下,直到您经过第15天,它才看起来像在工作。
尝试几个小时,然后进行测试以查看其是否正常运行,或者您是否已经尝试过并且无法重置?
请注意,但请仔细考虑您网站的安全性,如果设置如此长的超时时间以及滑动到期时间,则可能会比要严格控制的情况更安全。例如,让它在30天后过期,因此他们必须重新认证或将超时减少到一两天。他们从OWASP的安全编码指南中提出建议
基于平衡风险和业务功能要求,建立尽可能短的会话不活动超时。在大多数情况下,时间不应超过几个小时。