2011-11-30 25 views
0

我已經在CodeProject上發佈了一個不同的登錄系統(http://www.codeproject.com/KB/aspnet/mlogin.aspx),我有一些空閒時間,所以我想我會看看密碼恢復/重啓。要生成一個隨機的,一次性使用的URL

在文章中提到,我考慮向帳戶所有者發送一次性使用隨機網址,以便在賬戶因太多無效登錄嘗試/忘記密碼而被鎖定時重置密碼。

任何人都可以提供一些指導來幫助我做到這一點嗎?

到目前爲止,我想我只需要在用戶行的數據庫表的「恢復」字段中生成一個隨機字符串,然後檢查該網站上請求的URL是否與該字段,然後動態地繪製頁面服務器端。

我在這裏思考正確的軌道,還是遠離商標?

在此先感謝!

+0

這可能是一個好主意,首先解決從文章下面的句子中固有的問題:在登記時」,一個新的用戶將發送一封電子郵件,其中包含有關其賬戶的詳細信息,這些詳細信息包括用戶名,用戶名,**和密碼。「** –

+0

這將在我開始工作時處理,直到我有工作時纔會處理一個堅實的想法,如何在隨機的URL生成一個頁面。使它成爲單一用途只是一個生成一個新的,只要遇到問題的情況 – Ortund

回答

2

你在正確的軌道上。而不是一個隨機字符串,GUID就足夠了(SQL中的uniqueidentifier字段)。使用「d」的格式,因此URL沒有大括號:

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

在數據庫中建立該列,我假設我會使用默認值爲'new guid()'的varchar列(或類似)。任何有關製作專欄多長時間的建議? – Ortund