我试图让我的用户无限期地留在网站内,这样如果会话没有过期但我会将过期时间缩短到另外几分钟,但它似乎没有工作。
我的代码:
private void Application_EndRequest(object sender,EventArgs e)
{
if(Response.Cookies["siteCookie"] != null)
{
Response.Cookies["siteCookie"].Expires = DateTime.UtcNow.AddHours(1);
}
}
但仅在初始请求中,当最终用户没有我的cookie时,服务器返回Set-Cookie标头,但不返回后面的请求
答案 0 :(得分:1)
Response.Cookies
包含一系列Cookie,这些Cookie被设置为当前请求/响应的一部分。 不包含之前设置的Cookie,但这些Cookie通常会显示在Request.Cookies
中。所以你可以使用这样的东西:
private void Application_EndRequest(object sender,EventArgs e)
{
var oldCookie = Request.Cookies["SiteCookie"];
if (oldCookie != null)
{
var newCookie = new HttpCookie("SiteCookie", oldCookie.Value);
newCookie.Expires = System.DateTime.Now.AddHours(1);
Response.AppendCookie(newCookie);
}
}