如何替换查询字符串中的值?

时间:2011-06-30 09:12:10

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

我编写的代码从URL中获取一个密码,然后加密密码。我知道想要将加密的“密钥”放回URL而不是原始Pin。怎么办呢?

我抓住了Pin:

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

是否有相反的做法将其放回网址?

非常感谢。


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

这只是我正在制作的一个小程序。

它现在有效,唯一的问题是使用后:

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

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

1 个答案:

答案 0 :(得分:5)

您必须重定向到包含“已调整”查询字符串的网页

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

但是,这样的信息实际上不应该在查询字符串中发送,即使它是加密的。使用Session,或者更好的是,使用适当的会话管理器并在其中存储信息。

个人从不在querystring中存储任何内容,但必须承认,在某些情况下可能会发生这种情况。

想一想这个,我注意到你显然是在当前查询字符串中将用户的“Pin”发送到另一个页面。请考虑一下这方面的安全考虑因素。添加到我的观点,可能不会使用查询字符串来获取某些信息;

  

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

这将存储在各个地方,任何关心外观的人都可以轻松访问,并可能导致用户帐户受到损害。