我希望在我的應用程序上具有功能,可以讓用戶檢查他們希望無限期保持記錄(任意設置NOW從3個月後的Cookie過期)。表單身份驗證cookie似乎停止工作
我處理這個代碼是
private static HttpCookie GetFormsAuthenticationCookie(string userNameResponse,
bool persistCookie)
{
var cookie = FormsAuthentication.GetAuthCookie(userNameResponse, persistCookie);
if (persistCookie)
cookie.Expires = DateTime.Now.AddMonths(3);
return cookie;
}
private void LoginUser(string userNameResponse, bool PersistCookie)
{
Response.Cookies.Add(GetFormsAuthenticationCookie(userNameResponse, PersistCookie));
string navigateAfterUrl = FormsAuthentication.GetRedirectUrl(userNameResponse,
PersistCookie);
Response.Redirect(navigateAfterUrl);
}
但是在某些時候後,當我回到我需要再次登錄該網站。我已經驗證了cookie返回了我的過期日期,並且它沒有被設置爲會話cookie(也通過關閉/重新打開瀏覽器進行測試,並且cookie仍然存在)。我的一個想法是,當ASP.NET到期會話時,它有什麼關係。
我在我的web.config中有一個特定的機器鍵設置,所以不應該相同的cookie工作,如果IIS重新啓動等?有沒有人有什麼建議可以導致這個問題或至少如何進一步追蹤這個問題,因爲我想不出別的辦法。
那麼,如果我將超時設置爲3 * 30 * 24 * 60,那麼什麼是折衷?沒有選擇保持登錄狀態的用戶永遠不會離開我們的網站,直到他們關閉瀏覽器並刪除會話cookie爲止。 – 2009-10-26 20:12:52
即使用戶關閉瀏覽器,如果您設置了一個持久cookie(Expires屬性),那麼他將不會被註銷。但是如果你調用'FormsAuthentication.SignOut'方法,cookie將會失效。 – 2009-10-26 20:16:55
我指的是一個用戶選擇不保持登錄,該cookie沒有設置爲持久性的。 – 2009-10-26 20:21:50