通過我在ASP.Net開發相當新的,我已經搜查高和低的分辨率來此,都無濟於事。我使用Forms身份驗證來驗證用戶,當用戶A登錄時,我放棄當前會話,生成一個新的會話cookie/id並重定向到我的內容頁面,並且所有內容都按計劃運行。但是,當我打開一個新的瀏覽器窗口並導航到登錄屏幕,從而啓動一個新會話時,用戶A的身份驗證Cookie將自動傳遞到此會話,並且是請求Cookie集合的一部分。更糟的是,當我真正爲用戶B登錄,然後得到一個新的身份驗證cookie刷新會話中的瀏覽器窗口,它現在有用戶B的身份驗證cookieASP.Net窗體身份驗證cookie跨會話
我不知道爲什麼會這樣。我認爲瀏覽器(IE9)緩存了身份驗證cookie,因爲即使我在代碼隱藏中專門設置了Response.Cache.SetCacheability(「no-cache」),響應頭集合也被設置爲緩存控制「private」爲所有頁面。然後我想這可能是一個線程問題。
任何深入瞭解爲什麼發生這種情況是極大的讚賞,感謝。
添加一些代碼。你如何「放棄當前會議」? – Zerkey
@Zerkey驗證用戶的憑證後,我創建一個驗證票據/ cookie,然後發出Session.Abandon()。接下來,我Response.Cookies.Add(新HttpCookie(「sessionID」,「」)),以清除cookie。然後,我使用會話管理器生成一個新的會話ID和cookie,即SessionManager.SaveSessionID(Context,NewSessionID,重定向,IsAdded)。這工作得很好,當用戶登錄時,他被重定向到我的內容頁面,並帶有一個新的會話ID – user2845011