6

ASP.NET を使用しています。Cookie を追加または設定し (HttpRequest指定されたキーを持つ Cookie が含まれているかどうかに応じて)、その直後に を呼び出しますResponse.Redirect。クッキーは設定されていません。これは正しい動作ですか?302 ステータス コードの HTTP 応答中に Cookie を設定することについて相互に排他的なものはありますか?

ソースは次のとおりです。

        if (context.HttpContext.Request.Browser.Cookies)
        {
            var cookies = context.HttpContext.Request.Cookies;
            var stateCookie = new HttpCookie(SR.session, clientState.SessionId.ToString());
            if (cookies.AllKeys.Contains(SR.session))
            {
                context.HttpContext.Response.Cookies.Set(stateCookie);
            }
            else
            {
                context.HttpContext.Response.Cookies.Add(stateCookie);
            }
        }

ここに応答ヘッダーがあります

  • X-AspNetMvc-バージョン - 2.0
  • 接続 - 閉じる
  • キャッシュ制御 - プライベート
  • コンテンツ タイプ - テキスト/html
  • 日付 - 2011 年 3 月 20 日 (日) 03:48:04 GMT
  • 場所 - http://localhost:3599/Home/Redirected
  • サーバー - ASP.NET 開発サーバー/9.0.0.0
  • X-AspNet-バージョン - 2.0.50727
4

1 に答える 1

6

少しグーグルで調べたところ、はい、リダイレクト応答で Cookie を設定すると問題が発生する可能性があります。これは、一部のブラウザで無視される可能性があるためです。(応答はクライアントにリソースを無視し、代わりに他のリソースを取得するように実際に指示しているため、意味があるかもしれません)。

これはすでにここで議論されています: Sending browser cookies during a 302 redirect

そのため、リダイレクト先のページが Cookie を設定できるようにアーキテクチャを変更します。

于 2011-03-20T04:01:21.277 に答える