我正在开发一个ASP.Net应用程序,需要验证用户是否合法而不是垃圾邮件。一旦新用户输入他们的名字,姓氏,电子邮件地址,我的应用程序将发送电子邮件以验证用户的真实性。该电子邮件将包含一个确认用户帐户的链接。
我正在寻找有关电子邮件链接背后的逻辑的帮助。一旦用户点击链接,会发生什么?
我有一个使用过Captcha的网站,并没有太多运气阻止垃圾邮件(我知道你不能阻止100%垃圾邮件)与此类似Stopping spammers from creating accounts (reCaptcha not doing the trick)
答案 0 :(得分:2)
正如Rook在下面指出的那样,最简单的方法是使用Captcha。
如果您还需要验证电子邮件,请参阅下文。
您可以生成批准GUID并将其传递给将用户标记为活动的电子邮件URL。
例如,将一个名为ApprovalID的列添加到users表中,并在用户注册时生成新的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
答案 1 :(得分:0)
发送确认链接无法阻止垃圾邮件。通过电子邮件向某人发送Cryptographic Nonce链接,确保他们可以接收电子邮件,机器人也可以接收电子邮件。
阻止垃圾邮件的最佳方法是使用capthca,我使用reCapthca重新推荐。当用户注册您的服务时,您应该使用capthca提示用户。