我正在对URL值使用AES加密。我在这里仅用一个参数对其进行了采样以演示该问题:
http://localhost:12345/pagename?id=ha3bEv8A%2ffs0goPGeO6NPQ%3d%3d
Request.QueryString["id"]
返回的"ha3bev8a/fs0gopgeo6npq=="
显然与加密ID的值不匹配。有什么绊倒QueryString吗?
答案 0 :(得分:0)
您将获得一个URL编码的查询字符串,Request.QueryString["id"]
似乎可以为您解码。您总是可以重新编码:
string decodedId = Request.QueryString["id"];
string reEncodedId = HttpUtility.UrlEncode(decodedId);
答案 1 :(得分:0)
您看到的值实际上是正确的。呈现方式可能会使您感到困惑。 URL中的id值以URL编码进行编码。 某些字符必须以不同的方式编码在URL字符串中,因为它们是特殊字符,如果编码不正确,有时会弄乱字符串的解释方式。
例如,在您提供的查询字符串中: http://localhost:12345/pagename?id=ha3bEv8A%2ffs0goPGeO6NPQ%3d%3d
%2f字符是对'/'字符进行编码的方式,而%3d是对'='字符进行编码的方式。
当您通过获取Request.QueryString [“ id”]获得值时,它会将其从URL编码的字符串解码回原始文本。
检查此页面以获取更多参考。 https://www.w3schools.com/tags/ref_urlencode.asp