我想知道如何爲用戶設置一個超時,如果他們沒有做任何請求之後說10分鐘那裏會話被殺害,他們被註銷。如何超時用戶在asp.net formsAuthentication
我在webconfig這個
<authentication mode="Forms">
<forms loginUrl="~/Account/LogOn"
protection="All"
timeout="20160"
path="/"
requireSSL="false"
slidingExpiration="false"
defaultUrl="default.aspx"
cookieless="UseDeviceProfile"
enableCrossAppRedirects="false" />
</authentication>
有人告訴我,超時設置爲等於「20160」,因爲我想記錄在2個星期,如果他們選中了「保持登錄狀態2周」 。我也確保在我的Cookie Cookie中啓用IsPersistent。
那麼是否有另一個需要設置的超時?由於在我的網站上一段時間不活動後,它不再工作。我沒有計時,但說如果我離開並在10分鐘後回來,並嘗試在我的網站上做一些事情,比如保存一些不起作用的東西。所以它看起來像我的連接被殺死或什麼。我不得不signout,重新登錄,然後它的作品
編輯
這是如何使我的cookie
FormsAuthenticationTicket authTicket = new FormsAuthenticationTicket(version,userName,DateTime.UtcNow,DateTime.UtcNow.AddDays(14),createPersistentCookie,userData,"/");
string encryptedTicket = FormsAuthentication.Encrypt(authTicket);
HttpCookie authCookie = new HttpCookie(FormsAuthentication.FormsCookieName, encryptedTicket);
authCookie.Path = "/";
if (createPersistentCookie == true)
{
authCookie.Expires = DateTime.UtcNow.AddDays(14);
}
HttpContext.Current.Response.Cookies.Add(authCookie);
當我設置會話狀態在我的webconfig我的網址有這個在它
(S(gkvkze55zfzzee45wj34byee))
我寧願在我的代碼中沒有這條噁心的代碼。
關於會話ID的URL,你必須在web.config中改變無Cookie =「真」「假」。通過這樣做,你將不會在URL中擁有SessionID。 – 2009-11-09 02:25:40