【问题标题】:How do I replace values in a querystring?如何替换查询字符串中的值?
【发布时间】:2011-09-25 19:52:01
【问题描述】:

我编写了从 URL 中获取密码的代码,然后对密码进行加密。我知道要将加密的“密钥”放回 URL 而不是原始 Pin。如何做到这一点?

我通过以下方式获取 Pin 图:

string Pin = Request.QueryString["PIN"];

有没有相反的方法把它放回 URL 中?

非常感谢。


感谢您的反馈。 是的,我知道这一点,但这没关系,因为它只是用于学习目的。不会使用敏感信息。

这只是我正在开发的一个小程序。

现在可以了,唯一的问题是使用后:

Response.Redirect("page.aspx?key=" + encryptedKey);

我似乎无法在页面上显示任何内容;例如更新标签。

【问题讨论】:

  • Request.QueryString 是用户发送给您的查询。你为什么要改变它?对于更进一步的代码?还是自己提出另一个要求?还是在某处输出更新后的 URL?

标签: c# asp.net encryption query-string


【解决方案1】:

您必须重定向到带有“已调整”查询字符串的页面;

var encryptedKey = EncryptPin(Request.QueryString["PIN"]);
Response.Redirect("page.aspx?key=" + encryptedKey);

但是,即使是加密的,也不应该在查询字符串中真正发送此类信息。使用Session,甚至更好,一个适当的会话管理器并在其中存储信息。

个人从不在查询字符串中存储任何内容,但必须承认,在某些情况下可能不得不发生这种情况。

稍微考虑一下,我注意到您显然是在将当前查询字符串中用户的“Pin”发送到另一个页面。请考虑这样做的安全性考虑。为了补充我的观点,可能不使用查询字符串来获取某些信息;

您应该绝对不要将其用于此类敏感信息。

这将存储在不同的地方,任何愿意查看的人都可以轻松访问,并可能导致用户帐户被盗。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-03
    • 1970-01-01
    • 2014-11-22
    • 2016-06-26
    相关资源
    最近更新 更多