Question

Selon RFC, les cookies individuels dans l'en-tête HTTP "Cookie" peut être séparés par des virgules, ainsi que par des points virgules. Cependant, ASP.NET n'analyse pas le cas des virgules correctement -. Il ne compte pas virgule comme séparateur, mais estime qu'une partie de la valeur

Par exemple Si un client envoie Cookie: a=b, c=d d'en-tête, l'application ASP.NET verra juste un cookie nommé "un" avec la valeur "b, c = d".

En cas particulier, la même chose se produit lorsque le client envoie plusieurs têtes de cookies (un pour chaque biscuit) au lieu de combiner tous les cookies dans un en-tête. Du point de vue HTTP, cela est tout à fait valable, et dans ce cas la valeur effective de l'en-tête doit être concaténation des valeurs de toutes ses instances séparées par des virgules.

Quelqu'un sait-il une solution de contournement (ou peut-être une solution?) Pour cela? Je dois absolument obtenir ce travail, parce que je ne contrôle pas le client.

P.S. Il est ironique de constater que, selon ce fil , le comportement du client HTTP intégré .NET (alias HttpWebRequest) est tout le contraire, et provoque également des problèmes. : -)

Était-ce utile?

La solution

Je crois que la solution la plus simple pour obtenir le comportement souhaité (quelle que soit la décision correcte des normes) serait de créer un HttpModule qui correctement analyser ces informations des HttpContext.Request.Headers et placer des informations corrigées dans HttpContext.Request.Cookies.

scroll top