0

2 つの分離された環境にデプロイされた同じコード (Web アプリケーション) が「ログアウト」時に異なる動作をするという問題があります。

唯一の明らかな主な違いは、Server1 がセキュリティで保護されたプロトコルではないことですhttp://myurl。Server2 は保護されたプロトコルであり、https://myurl.

これらのサーバーは両方とも II6 で Web アプリケーションをホストしており、私は既に設定をくまなく調べて違いを見つけましたが、何も突出していません。Web 構成には、いかなる種類の特別な宣言もありません。

「ログアウト」メカニズムは、関連する Cookie の有効期限を 1 日前に設定してから、ホームページにリダイレクトするという単純なものです。

Request.Cookies["MyCookie"].Expires = DateTime.Now.AddDays(-1d);
Response.Cookies.Add(Request.Cookies["MyCookie"]);
Response.Redirect("~/Folder/Homepage.aspx");

あるサーバーと別のサーバーで同じコードが異なる動作をする理由について誰か理論を持っていますか?

人気のあるブラウザー IE8/9、Chrome、Firefox でこれを試してみましたが、同じ結果が得られました。リソース ユーティリティを使用して Cookie を調べても、server1(http) が Cookie を正しく破棄し、server2(https) が Cookie を保持していることがわかります (有効期限を調べると、日付は実際には昨日に設定されていましたが、まだ保持されていることがわかります)。

4

1 に答える 1