首页 文章

设计新用户确认(通过电子邮件验证)

提问于
浏览
3

我正在开发一个ASP.Net应用程序,需要验证用户是否合法而不是垃圾邮件 . 一旦新用户输入他们的名字,姓氏,电子邮件地址,我的应用程序将发送电子邮件以验证用户的真实性 . 该电子邮件将包含一个确认用户帐户的链接 .

我正在寻找有关电子邮件链接背后的逻辑的帮助 . 一旦用户点击链接,会发生什么?

我有一个使用过Captcha的网站,并没有太多运气阻止垃圾邮件(我知道你不能阻止100%垃圾邮件)类似于这个Stopping spammers from creating accounts (reCaptcha not doing the trick)

2 回答

  • 0

    正如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

    Code Behind

    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
    
  • 2

    发送确认链接无法阻止垃圾邮件 . 通过电子邮件发送某人与Cryptographic Nonce的链接只是确保他们可以接收电子邮件,机器人也可以收到电子邮件 .

    阻止垃圾邮件的最佳方法是使用capthca,我使用reCapthca重新命名 . 当用户注册您的服务时,您应该使用capthca提示用户 .

相关问题