4

古典的なaspサイトとasp.net MVCを並べて実行すると、古典的なaspでCookieを作成すると、.net統合パイプラインがそれぞれの末尾にpath="/"を追加する理由を知っている人はいますか?複製の作成。

例えば。「/test」のパスで 2 つの Cookie を作成すると、この従来の ASP ページを実行すると、path="/" で 2 つの追加の Cookie が作成されます。

生のヘッダーはそのように見えます。

test1=aaa; path=/test
test2=bbb; path=/test 
test1=aaa; path=/test; path=/ 
test2=bbb; path=/test; path=/

ただし、パスが /test に設定された test1 および test2 Cookie のみを作成しました。

統合されたパイプラインをオフにすると、正しいパスを持つ 2 つの Cookie のみが取得されます。さらに情報が必要な場合は、お知らせください。

更新:クラシック ASP が Cookie を書き込むとき、パスを含むすべてを値に入れるようです。そのため、.NET が Cookie を読み取るときに、すべてを値に入れ、パスをデフォルトとして「/」に設定します。これは、Cookie が書き込まれた同じ要求で Cookie にアクセスする場合にのみ問題になるようです。Response.Cookies または Request.Cookies を検査しないと、これは発生しないようです。これはバグだと思いますが、何が原因なのかわかりません。

Update2: Classic ASPで次のように Cookie を設定しています。

Response.AddHeader("Set-Cookie", "test1=aaa; path=/test; HttpOnly;");

4

3 に答える 3

0

やってみました:

Response.AddHeader("Set-Cookie", "test1=aaa; path=\"/test\"; HttpOnly;");
于 2013-04-29T16:41:32.463 に答える
0

勝手な推測ですが、空白が問題なのかもしれません。通常のResponse.Cookiesインフラストラクチャ(msdn を参照)を使用しようとしましたか?

Response.Cookies("Type") = "Chocolate Chip" 
Response.Cookies("Type").Expires = "July 31, 2001" 
Response.Cookies("Type").Path = "/" 

HttpOnly オプションを有効にすると、これが必須である場合に問題になります ( Classic Asp セッション Cookie の HTTPONLY の設定を参照)。

于 2013-04-29T08:34:45.343 に答える