バックグラウンドで、同じ Cookie を 2 回設定している可能性があります。Firefox と IE では、どちらを維持するかが異なる可能性があります。ASP.NET は、多くの Web アプリケーションで "guid" Cookie を自動的に設定するのが好きです。その名前を選択することで、自動的なロジックと自分自身のロジックとの間に緊張が生まれます。何が起こっているかを確認する最善の方法は、ライブ HTTP ヘッダーアドオンを Firefox にロードすることです。これにより、エンドユーザーに送信されている Cookie コマンドを正確に確認できます。同様の問題を強制的に再現することもできます。
HttpCookie hc = new HttpCookie("testcookie", "xyz");
hc.Expires = DateTime.Parse("12/12/2010");
Response.Cookies.Add(hc);
hc = new HttpCookie("testcookie", "abc");
Response.Cookies.Add(hc);
Set-Cookie
これにより、次の 2 つの呼び出しを含む HTTP ヘッダーが生成されます。
Set-Cookie: testcookie=xyz; expires=Sun, 12-Dec-2010 07:00:00 GMT; path=/
Set-Cookie: testcookie=abc; expires=Sun, 12-Dec-2010 07:00:00 GMT; path=/
そこから、最初または最後が最終的な値であるかどうかを決定するのはブラウザー次第です。2 つのブラウザーが異なる方法で行うと、説明した状況になります。ライブ HTTP ヘッダー アドオンをインストールし、同様のものを探します。少なくとも、"guid" は、ASP.NET フォーム アプリで使用する Cookie 名であると考える必要があります。
複数の場所に同じ Cookie を設定する必要がある場合は、最初にそれを見つけてみてください (存在しない場合は新しいものを作成してください)。これにより、同じ名前の別の Cookie を作成するのではなく、既存の Cookie の値をオーバーライドすることが保証されます。
HttpCookie hc = Response.Cookies["testcookie"];
if (null == hc) {
hc = new HttpCookie("testcookie");
Response.Cookies.Add(hc);
}
hc.Value = "xyz";