[問題] 無法讀取.net Forms Authentication 產ꔠ…

看板Web_Design作者 (科科)時間12年前 (2011/08/17 15:46), 編輯推噓1(101)
留言2則, 2人參與, 最新討論串1/1
系統寫了自動登入功能,在自己的主機測試ok後放到somee.com出了問題 一開始進入頁面都是停在login頁面 測試以後發現只要登入之後馬上重新進入頁面就可以自動轉換頁面, 如果登入後過了好幾秒再重新進入就會停在login頁面 看起來好像是session的問題,我把session改成放在資料庫可以解決嗎 為什麼我讀cookie會跟session有關係 以下是我產生cookie的程式 FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(1, Convert.ToString(fuser), DateTime.Now, DateTime.Now.AddYears(10), persist, Convert.ToString(fuser), FormsAuthentication.FormsCookiePath); string encTicket = FormsAuthentication.Encrypt(ticket); HttpCookie ck = new HttpCookie(FormsAuthentication.FormsCookieName, encTicket); if (persist) ck.Expires = ticket.Expiration; ck.Path = FormsAuthentication.FormsCookiePath; Response.Cookies.Add(ck); 以下是我放在global.asax 的程式 用來讀取cookie設定Current User protected void Application_AcquireRequestState(object sender, EventArgs e) { HttpCookie cookie = Request.Cookies["aspc"]; try { FormsAuthenticationTicket ticket = FormsAuthentication.Decrypt(cookie.Value); if (ticket.Expired) { FormsAuthentication.SignOut(); Response.Redirect("login.aspx"); } else { string[] roles = ticket.UserData.Split(new char[] { ',' }); FormsIdentity id = new FormsIdentity(ticket); GenericPrincipal principal = new GenericPrincipal(id, roles); HttpContext.Current.User = principal; Response.Redirect("ase.aspx"); } } catch (Exception ex) { Response.Write(FormsAuthentication.FormsCookieName); Response.Write(ex.Message); } } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 125.229.112.95

08/17 16:48, , 1F
可能要在web.config綁machinekey
08/17 16:48, 1F

08/17 22:44, , 2F
加了machinekey解決問題了
08/17 22:44, 2F
文章代碼(AID): #1EIt78fB (Web_Design)