我想知道是否有一种方法可以设置.NET应用程序来设置和更新浏览器中aspxauth和asp.net_sessionid cookie的过期时间?在aspxauth和asp.net_sessionid cookies上设置/更新过期
根据我所看到的,cookie的过期日期与1/1/0001类似,告诉浏览器在浏览器关闭前保留它们(我已经使用Chrome观察过)。我想设置一个明确的时间,但是,我将需要在每次请求时更新那个时间。
我试图与像一些代码来做到这一点:
var timeoutMins = Session.Timeout;
if (Response.Cookies.Count > 0)
{
foreach (string s in Response.Cookies.AllKeys)
{
if (s == FormsAuthentication.FormsCookieName || s.ToLower() == "asp.net_sessionid")
{
Response.Cookies[s].Expires = DateTime.Now.AddMinutes(timeoutMins);
}
}
}
我试图在Global.asax END_REQUEST事件这样做,虽然这似乎不是一个好地方,因为它闪光几次每页,你没有访问sessionstate超时;进一步它只在登录和注销触发,所以基本上我可以设置一次,但我永远不会更新它。这会导致我的用户在登录后15分钟内被注销,即使它们已被激活。
这似乎将有一些设置告诉.NET来处理这个?我知道这是一个奇怪的请求,但它是这个项目的安全要求,所以我试图让它工作!