正如魯克指出以下,最簡單的方法是使用Captcha。
如果您需要驗證電子郵件以及不過,見下文。
您可以生成批准GUID並將其傳遞到將用戶標記爲活動的電子郵件URL。
例如,一個名爲ApprovalID列添加到用戶表,並生成一個新的GUID當用戶寄存器,即
你應該標記在此階段,用戶爲不活動。
Example Guid 3F2504E0-4F89-11D3-9A0C-0305E82C3301
然後通過用戶ID和GUID在電子郵件正文
<a href="http://www.mysite.com/verify.aspx?UserId=TheUserId&ApprovalId=3F2504E0-4F89-11D3-9A0C-0305E82C3301">Verify your account</a>
然後一個簡單的頁面verify.aspx
代碼隱藏
string UserId = Request[UserId].ToString(); // You can parse these as Guids
string ApprovalId = Request[ApprovalId].ToString();
TODO:
// Get user from database
// Match QueryString ApprovalId to Column ApprovalId
// Ask user to Log In
// Set user as active
這並不會阻止垃圾郵件。 – rook 2010-10-03 01:17:55
我不會在查詢字符串中暴露用戶表的數據庫ID。 – 2010-10-03 01:18:46
@Claudio Redi SO暴露用戶ID ...這是Web應用程序最常用的方式。 – rook 2010-10-03 01:19:47