我在ASP.Net web api控制器上设置cookie。这是我的代码部分:
var cookie = new CookieHeaderValue(cookieName, cookieValue)
{
Expires = cookieExpires, Domain =cookieDomain, Path= "/"
};
response.Headers.AddCookies(new[] {cookie});
我注意到cookie的值正在自动编码。因此abc==
变为abc%3d%3d
。这不会发生在常规的MVC控制器上。
如何防止编码发生?
答案 0 :(得分:2)
它被编码,因为否则" abc =="字符串值将导致无效的cookie。编码是自动的,以防止无效字符,如" ="存在于cookie中。
我不确定你在MVC中发生了什么意思,也许当你在请求中访问cookie值然后它被解码了?
请参阅https://en.wikipedia.org/wiki/HTTP_cookie#Setting_a_cookie
修改强> 如果" abc ==" string是Base64编码的字节数组,然后你可以通过使用System.Web.HttpServerUtility UrlTokenEncode / UrlTokenDecode方法得到arround。然后不会发生其他编码。
答案 1 :(得分:1)
要防止它在下面使用,无论你在哪里阅读cookies:
Server.UrlDecode("Your string");
它将删除'%3d'并将其转换回'='