滑动到期.net会话

时间:2016-08-22 15:10:13

标签: c# asp.net session

我试图让我的用户无限期地留在网站内,这样如果会话没有过期但我会将过期时间缩短到另外几分钟,但它似乎没有工作。

我的代码:

private void Application_EndRequest(object sender,EventArgs e)
{
        if(Response.Cookies["siteCookie"] != null)
        {
            Response.Cookies["siteCookie"].Expires = DateTime.UtcNow.AddHours(1);
        }
}

但仅在初始请求中,当最终用户没有我的cookie时,服务器返回Set-Cookie标头,但不返回后面的请求

1 个答案:

答案 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);
    }
}