【发布时间】:2009-11-18 22:50:50
【问题描述】:
在我的应用程序中,我获取用户的电子邮件地址,对其进行加密和 URLEncode,然后将其传递到 QueryString 中。
email = Server.UrlEncode(aes.Encrypt(email));
登陆页面做了一个Request.Querystring["email"],UrlDecodes,然后解密。
string email = Server.UrlDecode(Request.QueryString["eId"]);
string decemail = aes.Decrypt(email);
return decemail;
在删除“+”字符的地方发生了非常奇怪的行为,因此解密失败。
我试图删除 UrlDecode,但这并没有解决问题。
解决问题的方法是这样做:
string email = Request.QueryString["eId"].ToString();
string decemail = aes.Decrypt(email);
return decemail;
摆脱 UrlDecode,并在查询字符串上调用 ToString()。
有人知道为什么会这样吗? Request.QueryString 默认调用 urlDecode 吗?我认为不会。
另外,为什么在这种情况下执行 .ToString() 会起作用?
【问题讨论】:
标签: asp.net urlencode encryption urldecode request.querystring