我想知道是否有一种方法可以设置您的 .NET 应用程序来设置和更新浏览器中 aspxauth 和 asp.net_sessionid cookie 的到期时间?
据我所知,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来处理这个?我知道这是一个奇怪的请求,但这是这个项目的安全要求,所以我正在努力让它工作!