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) を保存しません。

クッキーは次のように出力されます。

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

D'oh!私はそのような馬鹿です...

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 に答える