我的Cookie存在問題。我通過LDAP對用戶進行身份驗證,只要瀏覽器保持打開狀態,用戶就不必重新登錄到該工具。只要瀏覽器處於打開狀態,他們甚至可以關閉標籤。Cookie不會持續
但是,當用戶關閉瀏覽器時cookie會被刪除。我爲此搜索了很多谷歌,並且我無法獲得任何解決方案,例如this one或that one。
這裏是我的設置,一旦我的登錄頁面上進行身份驗證:
String encryptedTicket = FormsAuthentication.Encrypt(authTicket);
//Create a cookie, and then add the encrypted ticket to the cookie as data.
HttpCookie authCookie = new HttpCookie(FormsAuthentication.FormsCookieName, encryptedTicket);
//Add expiration date to the cookie
authCookie.Expires = DateTime.Now.AddMonths(1);
//Add the cookie to the outgoing cookies collection.
Response.Cookies.Add(authCookie);
//You can redirect now.
FormsAuthentication.RedirectFromLoginPage(txtUsername.Text, false);
我的web.config看起來是這樣的:
<authentication mode="Forms"> <forms loginUrl="Logon.aspx" timeout="43200" name="adAuthCookie" path="/" slidingExpiration="true" /> </authentication>
無論我做什麼了ASP.NET_SessionId和adAuthCookie餅乾始終設置爲「當我關閉瀏覽器時」。 我想避免我的用戶在關閉瀏覽器時始終需要登錄,而是每月只做一次。
你的'authTicket'看起來像什麼,你使用的是什麼會員供應商? – Nimrod 2011-02-23 00:49:36
authTicket看起來很正常,CookiePath爲「/」,Expired爲false,IsPersistent爲true等等。我能看到的唯一奇怪的事情是Expiration日期設置爲1h後。至於會員供應商,我仍然是新手,但我不相信我在這種情況下使用了一個。 – LanFeusT 2011-02-23 01:24:37