2016-08-22 107 views
0

我試圖讓我的用戶無限期地呆在網站內,以便如果會話尚未過期,我會將過期滑動到另外幾分鐘,但似乎不會工作。滑動過期.net會話

我的代碼:

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

請求Response.Cookies包含正在設置爲當前請求/響應一部分的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); 
    } 
}