命名一种获取url安全唯一链接的方法(.net)

时间:2013-05-19 08:52:40

标签: c# asp.net encryption

编辑1:也许我之前不是很清楚。对于以下场景,我想知道最佳/标准方法。

我有一个.NET 4 Web应用程序,由于各种原因,我需要向客户发送唯一的链接。(如密码重置,邀请,帐户验证等)

链接结构通常是 mysite / some-action?key = some-unique-value

如何生成“some-unique-value”部分?无论采用何种方法,都不应该破坏我的网址。

我发现了一些关于SO的问题,这些问题已经接近我的需要但却无法解决问题 如果有更好/标准的方法来实现这种功能,请告诉我。感谢。

3 个答案:

答案 0 :(得分:1)

假设你得到一个字节数组 - 你可以使用:

将其转换为十六进制
BitConverter.ToString(bytes);

您可能希望使用哈希算法,例如SHA1而不是加密。

答案 1 :(得分:1)

您可以尝试加密查询字符串参数,here是一个很好的解释。 (Source

答案 2 :(得分:0)

使用server.UrlEncode进行编码,使用Server.UrlDecode进行解码

Dim Url As String = "something.aspx?" 
Url & = "key = " & Server.UrlEncode("someUniqueValue")

编辑:您不必解码服务器上的url字符串,因为它会被asp.net自动解码并再次解码可能会导致问题,尤其是如果您的原始网址包含将被解码的“+”到了一个空间。