asp.net中读取带有加号(+)的Cookie,会自动把加号替换为空格
今天在做Cookie的验证时,发现怎么验证都不对,而奇怪的是之前验证是正常的,这次只是改了一个值,经过调试发现在浏览器中一个Cookie的值为 “lV502ZEaL75+9l5GJQHhDg==”,但在程序中读到的却是“lV502ZEaL75 9l5GJQHhDg==”,原来Cookie中的加号已经被替换为空格,谷歌搜了一下,发现MS网上有一编这方面的帮助文档,“ASP May Improperly Parse Cookies Containing a Plus Sign”,不过讲的是asp和IIS4.0.
我的Cookie是用DES加密的,因为之前的值加密号没有出现加号,而后面换了另外一个值时出现加号,导致验证失败。
解决方案:
使用String.Replace("+", "%2B")先将空格编码