【问题标题】:Request.Querystring removes characters from encrypted textRequest.Querystring 从加密文本中删除字符
【发布时间】: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


    【解决方案1】:

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

    来源:

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

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

    【讨论】:

    • ahhh 所以我正在解码一个解码的字符串。这毁了我大约 90 分钟的时间,哈哈
    猜你喜欢
    • 1970-01-01
    • 2022-01-16
    • 1970-01-01
    • 2014-03-18
    • 2020-06-02
    • 2014-12-19
    • 2013-10-10
    • 1970-01-01
    相关资源
    最近更新 更多