如何向用户发送电子邮件确认链接

时间:2011-03-20 07:50:37

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

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

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

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

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

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

5 个答案:

答案 0 :(得分:4)

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

  

请启用您的帐户   www.mysite.com?id=21EC2020-3AEA-1069-A2DD-08002B30309D

在确认页面,您将检查此查询,如

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

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

答案 1 :(得分:1)

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

为每个用户提供以下字段:

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

confirmCode与每条记录的唯一userID分开,只有在将电子邮件发送到注册时使用的地址时才能使用id。然后我发送如下URL:

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

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

答案 2 :(得分:0)

用户

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

发送电子邮件检查this

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

答案 3 :(得分:0)

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

MailDefinition CreateUserWizard Control 属性
  

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

答案 4 :(得分:0)

.NET 4 Framework

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

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

相关问题