我正在开发一个网站,我需要在用户注册时向用户的电子邮件帐户发送确认链接。
当用户点击此链接时,数据库中的字段userEnable
会从“false”更改为“true”。
当用户点击注册按钮时,如何向用户发送确认电子邮件。
当用户点击此确认链接时,字段UserEnable
将如何从“false”更改为“true”
我使用asp.net 4.0,VB.NET作为语言,SQL Server 2008作为我的数据库。
答案 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)
答案 3 :(得分:0)
如果您使用的是ASP.NET内置成员资格控制,则可以使用
MailDefinition 的 CreateUserWizard Control 属性MailDefinition属性返回一个 引用一组属性 用于定义格式和 电子邮件的内容 发送给新用户。常用设置 包括主题行和 发件人的回信地址。
答案 4 :(得分:0)
.NET 4 Framework
观看此视频,了解如何操作。
http://www.asp.net/security/videos/implement-the-registration-verification-pattern