背景:奇怪的行爲
- ASPNET web應用程序/ C#3.5
- IIS7
- VS 2010
- 的Windows 7
當用戶通過驗證後,我們創建了一個cookie,這樣:
var cookieASP = FormsAuthentication.GetAuthCookie(user.Id, true);
cookieASP.Domain = "x.y.local";
是的,domain
是硬編碼的這個例子。
在Firefox 11中使用cookie查看器擴展功能,我可以看到cookie的domain
爲:.x.y.local
,前導爲.
。我知道它允許在w.x.y.local
和q.x.y.local
之間共享cookie。好。
但是,當斷開用戶點擊,他並沒有踢出...
var cookieAsp = System.Web.Security.FormsAuthentication.GetAuthCookie(u.Identifiant, true);
cookieAsp.Expires = DateTime.Now.AddDays(-10);
Response.Cookies.Set(cookieAsp);
FormsAuthentication.SignOut();
並與調試器,我們可以看到,cookieAsp.Domain
爲空。並且Cookie不會從瀏覽器的Cookie中刪除。
如果我修改Cookie域(直接從瀏覽器),並設置其域x.y.local
不領先.
,cookie被刪除,用戶斷開連接。
我不明白爲什麼這.
被添加,以及爲什麼它不被瀏覽器很好理解。
EDIT(非常重要我猜):我們正在做這樣的方式,因爲如果我們不設置domain
,那麼IE8(僅8)無法理解我們的Cookie ...