ASP.NETのリダイレクト中にCookieを設定することは可能ですか?
-
27-10-2019 - |
質問
私はASP.NETを使用しています。 Cookieを追加または設定します( HttpRequest
指定されたキー付きクッキーが含まれています)、そしてその後すぐに電話 Response.Redirect
. 。 Cookieは設定されていません。これは正しい動作ですか? 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-version -2.0
- 接続 - 閉じます
- キャッシュコントロール - プライベート
- Content -Type -Text/HTML
- 日付 - 日、2011年3月20日03:48:04 GMT
- 位置 - http:// localhost:3599/home/redirected
- サーバー-ASP.NET開発サーバー/9.0.0.0
- x-aspnet-version -2.0.50727
解決
少しグーグルで検索した後、はい、いくつかのブラウザでは無視される可能性があるため、リダイレクト応答でCookieを設定することに問題があるようです。 (応答はクライアントにリソースを無視し、代わりに他のリソースを取得するように実際に伝えているため、ある程度は理にかなっているかもしれません)。
これはすでにここで説明しています: 302リダイレクト中にブラウザCookieを送信します
そのため、ページがリダイレクトされるようにクッキーを設定するようにアーキテクチャを変更します。
所属していません StackOverflow