大家好:
我架了兩個網站,一個是ASP.NET 1.1,另一個是2.0的,並將站台設為同一Domain,舉例:site11.example.com與site20.example.com。
兩台都開啟了表單驗證,也就是
<authentication mode="Forms">
且
<deny users="?" />
並且設了同樣的machineKey,在2.0的站台上可以驗證帳號密碼並發出表單認證的認證cookie,並且將這個cookie的Domain屬性設為example.com。
經過測試site11可以正確抓到site22發出的表單認證cookie,並且視為合法使用者。即
User.Identity.IsAuthenticated == true;
且User.Identity.Name也包含了使用者的登入帳號。
我現在遇到的問題是:我在site11的頁面中,下了FormsAuthentication.SignOut()的語法,但無法將使用者登出,認證的cookie仍然存在。但在site20中下這個語法,卻可以將使用者正確的登出,請問各位先進知道這個有可能是什麼原因嗎?
在 FormsAuthentication.SignOut() 之後, 自己再將 Cookie 及 Session 全部清掉咧!?
跨綱站光是 Session.Abandon, 偶爾還是會有殘留, 所以我都是Session.RemoveAll 再 Session.Abandon 清2次, Cookie 若只是清掉的話, 只會影響到目前的網站, 所以我都是將 Cookie 設為過期, 這樣子才會影響到其他網站的 Cookie