1

我有一个cookie保存给用户,如下所示......

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

SearchText 存储他们在前一页中输入的值。我们观察到如果 cookie 中有一个 & 符号(例如 Tyne & Wear),那么 cookie 不会保存后续值(SearchType)。

会发生什么 cookie 是这样输出的:

SearchText=Tyne &

显然,&符号混淆了cookie。有没有办法防止这种情况发生?

4

3 回答 3

5

您可以使用URLEncode方法。

就像是:

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

这是必不可少的,因为在 cookie 中只允许使用某些字符,例如& 符号会破坏它们

于 2009-12-02T14:26:42.870 回答
1

哦!我真是个笨蛋……

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)
于 2009-12-02T14:23:12.470 回答
1

cookie 值需要编码。我不是VB专家,但看起来这是用方法完成的

System.Web.HttpUtility.UrlEncode
于 2009-12-02T14:25:08.127 回答