Question

J'ai un cookie enregistré sur l'utilisateur comme suit ...

Dim searchCookie As HttpCookie = New HttpCookie("SearchCriteria")
searchCookie.Item("SearchText") = FullSearchCriteria.SearchText
searchCookie.Item("SearchType") = FullSearchCriteria.SearchType

Le SearchText stocke une valeur qu'ils ont entrée dans une page précédente. Nous avons observé s'il y a une esperluette dans le cookie (par exemple, Tyne & Wear), le cookie ne sauvegarde pas les valeurs suivantes (SearchType).

Qu'est-ce qui se passe est le cookie est sortie comme ceci:

SearchText=Tyne &

Il est évident que l'esperluette confond le cookie. Y at-il un moyen d'éviter que cela se produise?

Était-ce utile?

La solution

Vous pouvez utiliser la méthode URLEncode .

Quelque chose comme:

imports HttpContext.Current
...
Dim searchCookie As HttpCookie = New HttpCookie("SearchCriteria")
searchCookie.Item("SearchText") = Server.UrlEncode(FullSearchCriteria.SearchText)
searchCookie.Item("SearchType") = Server.UrlEncode(FullSearchCriteria.SearchType)

Il est essentiel que que certains caractères sont autorisés dans les cookies avec des caractères tels que esperluette les briser .

Autres conseils

D'oh! Je suis un dork ...

Dim searchCookie As HttpCookie = New HttpCookie("SearchCriteria")
searchCookie.Item("SearchText") = HttpContext.Current.Server.UrlEncode(FullSearchCriteria.SearchText)
searchCookie.Item("SearchType") = HttpContext.Current.Server.UrlEncode(FullSearchCriteria.SearchType)

Les valeurs de cookies doivent être codées. Je ne suis pas expert en VB, mais il semble que cela se fait avec la méthode

System.Web.HttpUtility.UrlEncode
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top