Request.Querystring从加密文本中删除字符

时间:2009-11-18 22:50:51

标签: asp.net urlencode encryption urldecode request.querystring

在我的应用程序中,我获取用户的电子邮件地址,对其进行加密,然后对其进行URLE编码,并将其传递给QueryString。

email = Server.UrlEncode(aes.Encrypt(email));

着陆页执行Request.Querystring [“email”],Url解码,然后解密。

    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()在这个实例中工作?

1 个答案:

答案 0 :(得分:4)

是的正确。 Request.QueryString实际上返回已经被url解码的字符串。

来源:

  

http://www.codeproject.com/KB/custom-controls/antiauto.aspx?msg=1475521

     

http://www.kamath.com/codelibrary/cl006_url.asp