2013-03-03 74 views
2

我目前正在建立一個網站,人們可以註冊並可以擁有自己的網頁內容。我已創建不使用提供在Microsoft Visual Studio 2010中我在後端與發送電子郵件驗證鏈接以激活配置文件c#

向tblUsers SQL數據庫創建嚮導用戶自定義登錄頁面

,用戶寄存器將被保存。我配置了我的電子郵件smtp設置,並能夠使用註冊人員的電子郵件發送電子郵件。我已經測試過它,它的工作原理。

的問題

(1)我很困惑,我怎麼能生成激活鏈接連接到與電子郵件發送。

(2)如何可以編程代碼中與用戶相關的SQL表更新字段

例如:用戶驗證=真

當用戶點擊該鏈接發送通過電子郵件。

(3)如何阻止用戶無法通過驗證過程登錄到網站? (我知道這可以很容易地通過在創建用戶嚮導中更改一些東西來完成,但是我通常創建了我的註冊,因此它在註冊按鈕單擊事件上運行)。因此,我似乎無法控制我的頭如何執行它。

請儘量幫助我,如果可能的話 將不勝感激。

回答

9

我建議有一個名爲「ActivationToken」的字段,並生成一個GUID。您可以通過調用newid()函數直接在SQL中執行此操作,也可以通過在C#中調用Guid.NewGuid()執行此操作。這是一個非常獨特的/隨機的價值​​,幾乎不可能暴力破解。

因此,當用戶註冊,你會做這樣的事情:

insert into tblUsers (Username, Password, Active, ActivationToken) values ('johndoe', 'mypassword', 0, newid()) 

鏈接會是這樣:http://yoururl.com/Activate.aspx?token= {yourActivationGuid}

Update tblUsers set Active=1 where ActivationToken={yourActivationGuid} 

如果你的用戶名已經是一個GUID,你可以可能會使用它(例如,如果您使用的是aspnet_user表)。至於不允許登錄,只需檢查Active標誌是否設置爲true。如果不是,請禁止登錄。

所以驗證登錄,你可以這樣做:

select * from tblUsers where Username="johndoe" and Password="mypassword" and Active=1 
+0

你會碰巧有任何鏈接,這將有助於我進一步瞭解如何整合此? – Suits999 2013-03-03 01:15:52

+1

對不起,我沒有。我真的要跑,但我更新了一些更多的示例代碼我的帖子。如果我返回時仍需要幫助,我會提交更新。 – 2013-03-03 01:19:38

+0

**不要以明文形式存儲密碼** – SLaks 2013-03-03 01:39:55

0

創建用戶登錄頁面。點擊一個提交後,生成一個新的guid(),如上所述,並通過激活guid(唯一)將該電子郵件發送給用戶,一旦用戶單擊,激活數據庫中的用戶(SQL)。

+0

,如果有任何我可以遵循的例子可能會非常有幫助 – Suits999 2013-03-03 12:41:31