ASP.NET 失敗を正しく扱うにカンマ区切りのクッキー
-
25-09-2019 - |
質問
による RFC, 個人のクッキーの"Cookie"HTTPヘッダがカンマで区切られてなどをセミコロン.しかし、ASP.NET な解析をカンマ区切の場合は正しくありません数をカンマ区切り文字としても考慮での値です。
例えば、
場合にクライアントに送るヘッダー Cookie: a=b, c=d
, そのASP.NET 応用までクッキーの名前"a"の値を"b、c=d".
特別な場合として、同じようなことが起きた時にお客様に送複数のCookieヘッダのためにクッキー)の代わりに組み合わせすべてのクッキーを無効に一つのヘッダを表します。HTTPの観点から、完全に有効で、そのような場合は、効果的なヘッダの値は連結した文字列の値はすべてそのインスタンスカンマで区切られています。
は誰も知らの回避策(またはその国の固定?) す。絶対に必要なこと、などを制御するサービスです。
P.S.皮肉なことに このスレッド, の.純内蔵HTTP ーク(通称HttpWebRequest)の動作は逆のものが問題になります。:-)
解決
今、最も単純な解の挙動をご希望のみならず、基準の正確性)をHttpModuleる正しい構文解析これらの情報からHttpContext.ます。ヘッダーや場所を修正情報をHttpContext.ます。クッキー。
他のヒント
双方は、RFC2109およびRFC2965知られていない説明実現しました。
すべて見る 用いて議論されている-httpstate-クッキー る作品のIETF httpstateワーキンググループ
に改善し、イメージにリンクが互換性のために残されています。この HTTP状態管理機構 文書では、最先端ので、指定のセミ加工します。なというカンマについては受け入れるべきものための将来の互換性は必要ありません:
注意:下位互換のため、セパレータにクッキーのヘッダ セミコロン(;)です。サーバーにも受け入れカンマ(,) セパレータとしてクッキー-値を将来に対応しています。