【问题标题】:How do I send an email confirmation link to the user如何向用户发送电子邮件确认链接
【发布时间】:2011-07-19 01:09:30
【问题描述】:

我正在开发一个网站,我需要在用户注册时将确认链接发送到用户的电子邮件帐户。

当用户单击此链接时,数据库中的字段 userEnable 会从 "false" 更改为 "true"。

当用户点击注册按钮时,我如何向用户发送确认电子邮件。

当用户点击此确认链接时,UserEnable 字段将如何从 "false" 更改为 "true"

我使用 VB.NET 作为语言的 asp.net 4.0 和我的数据库的 SQL Server 2008。

【问题讨论】:

  • 您希望这里的人们只为您提供完整的解决方案这一事实不会被很好地接受。展示你迄今为止尝试过的内容。

标签: .net asp.net vb.net confirmation-email


【解决方案1】:

用户

ID |用户名 |电子邮件 |用户启用

发送电子邮件检查this

当您收到确认链接时,您会根据电子邮件字段进行查找,并将其对应的 UserEnabled 设置为 true。

【讨论】:

    【解决方案2】:

    如果您使用的是 ASP.NET 内置成员控制,则可以使用

    CreateUserWizard Control

    MailDefinition属性

    MailDefinition 属性返回一个 引用一组属性 用于定义格式和 电子邮件的内容是 发送给新用户。常用设置 包括主题行和 寄件人的回邮地址。

    【讨论】:

      【解决方案3】:

      首先,您应该在数据库中创建表用户,并在数据库中创建一个类似Active = false 的列(1 位数据库字段类型)。 然后,在用户创建他的帐户后,您应该向他发送一个包含用户激活指南的查询字符串的激活链接。 比如:

      请在以下位置激活您的帐户 www.mysite.com?id=21EC2020-3AEA-1069-A2DD-08002B30309D

      在确认页面,你会像这样检查这个查询

      var id = Response.QueryString["id"]
      if (id!= null) userBL.ActivateUser(id);
      

      ActivateUser() 方法会将字段更新为 true,并发送电子邮件确认。

      【讨论】:

        【解决方案4】:

        .NET 4 框架

        观看此视频,了解如何操作。

        http://www.asp.net/security/videos/implement-the-registration-verification-pattern

        【讨论】:

          【解决方案5】:

          nemke 发布的答案很好,但我的做法略有不同,我觉得它更安全一些,并且可以防止未来发生变化。当我在数据库中创建用户记录时,我会在每个用户记录中创建两个额外字段以进行确认。

          每个用户的类似以下字段:

          userID: getUniqueUserID()
          confirmed: false,
          confirmCode: getRandomUUID()
          

          confirmCode 与每条记录的唯一 userID 分开保存,并且仅在将电子邮件发送到注册时使用的地址时才应使用。然后我发送如下 URL:

          http://example.com/activate?id=43d24b9ca73&c=16b4cf80-c59a-11e2-8b8b-0800200c9a66

          然后您可以获取服务器端的查询字段并使用id 以根据唯一的userID 查找特定的用户记录,确保c 字段与记录中的confirmCode 匹配,然后将confirmed字段设置为true并将特定用户的记录保存在数据库中。

          【讨论】:

          • 我同意 guid 不应该是 UserId,而是一个额外的 guid。出于安全原因,这样做会更好。
          猜你喜欢
          • 1970-01-01
          • 2023-03-14
          • 2016-07-14
          • 2018-05-06
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多