生成随机的一次性URL

时间:2011-11-30 08:12:58

标签: vb.net url-routing security

我在CodeProject上发布了一个不同的登录系统(http://www.codeproject.com/KB/aspnet/mlogin.aspx)并且我有一些空闲时间,所以我想我会看一下密码恢复/重置。

在文章中建议我考虑向帐户所有者发送一次使用随机网址,如果帐户因无效登录尝试次数/忘记密码而被锁定,他们可以重置密码。

任何人都可以提供一些指导来帮助我这样做吗?

到目前为止,我想我只需要在用户行的数据库表的“恢复”字段中生成一个随机字符串,然后检查网站上请求的URL是否与该值相同字段,然后动态绘制页面服务器端。

我在这里思考正确的方向,还是离开了标记?

提前致谢!

1 个答案:

答案 0 :(得分:2)

你走在正确的轨道上。 GUID就足够了(SQL中的uniqueidentifier字段),而不是随机字符串。使用“d”格式,以便URL没有大括号:

MyUser.RecoveryKey = Guid.NewGuid()
Dim EmailBody As String = "http://blah/recoverpass.aspx?key=" & _
   MyUser.RecoveryKey.ToString("D");