バックグラウンド:
- AspNet Web アプリ / C# 3.5
- IIS7
- VS 2010
- ウィンドウズ7
ユーザーが認証されると、次のように Cookie を作成します。
var cookieASP = FormsAuthentication.GetAuthCookie(user.Id, true);
cookieASP.Domain = "x.y.local";
はい、domain
この例ではハードコーディングされています。
Firefox 11 で Cookie ビューア拡張機能を使用するとdomain
、Cookie が :.x.y.local
であり、先頭に.
. w.x.y.local
と の間でCookie を共有できることはわかっていますq.x.y.local
。Ok。
しかし、ユーザーが切断をクリックしても、彼は追い出されません...
var cookieAsp = System.Web.Security.FormsAuthentication.GetAuthCookie(u.Identifiant, true);
cookieAsp.Expires = DateTime.Now.AddDays(-10);
Response.Cookies.Set(cookieAsp);
FormsAuthentication.SignOut();
cookieAsp.Domain
デバッガーを使用すると、それが nullであることがわかります。また、Cookie はブラウザの Cookie から削除されません。
Cookie ドメインを (ブラウザーから直接) 編集し、そのドメインを先頭のx.y.local
なし.
に設定すると、Cookie が削除され、ユーザーが切断されます。
これ.
が追加された理由と、ブラウザがよく理解していない理由がわかりません。
編集(私が推測する主な重要性):設定しないdomain
と、IE8(8のみ)がCookieを理解できないため、このようにしています...