我正在生成一個FormsAuthentication權證,並將其存儲在一個cookie中,我使用MVC AuthorizeAttribute來提供授權。現在,我已經知道了,如果我有一個「保持登錄狀態」複選框選中,Cookie不會過期(我只是將cookie.expires更改爲現在+ 1年,出於測試目的,已經檢查了保持登錄狀態)。如何使用表單身份驗證來提供保留登錄功能?
但是,即使我設置cookie在創建票證時是持久性的,票據在超時期限後仍然停止工作。
下面的代碼,我創建AuthTicket:
var now = DateTime.UtcNow.ToLocalTime();
FormsAuthenticationTicket authTicket = new System.Web.Security.FormsAuthenticationTicket(1, username, now, now.Add(FormsAuthentication.Timeout), rememberMe, username, FormsAuthentication.FormsCookiePath);
string encryptedTicket = System.Web.Security.FormsAuthentication.Encrypt(authTicket);
return encryptedTicket;
這是我設置爲一個cookie相同的encryptedTicket。任何人都知道我可以如何讓這張票在FormsAuthentication超時之後被允許?我是否必須手動處理FormsAuthentication Timeout時間?
你就不能使用'FormsAuthentication.SetAuthCookie'?你真的需要創建自己的?持久性cookie並不意味着它將永遠持續,它將持續在瀏覽器會話之間。 – LukLed 2012-08-06 21:10:55
我需要自己創建,因爲我也可以從移動應用程序訪問此日誌,並且應用程序存儲加密的故障單,並在獲取數據時將其作爲請求的一部分傳入。 也許我剛剛誤解了持久性對認證票的作用。它有什麼作用嗎? – 2012-08-06 21:29:19