我正在开发一个网站,当他/她注册时,我需要向用户的电子邮件帐户发送确认链接。
当用户单击此链接userEnable
时,数据库中的字段从“false”更改为“true”。
当用户单击注册按钮时,如何向用户发送确认电子邮件。
当用户单击此确认链接时,该字段将如何UserEnable
从“假”变为“真”
我使用 asp.net 4.0 和 VB.NET 作为我的数据库的语言和 SQL Server 2008。
我正在开发一个网站,当他/她注册时,我需要向用户的电子邮件帐户发送确认链接。
当用户单击此链接userEnable
时,数据库中的字段从“false”更改为“true”。
当用户单击注册按钮时,如何向用户发送确认电子邮件。
当用户单击此确认链接时,该字段将如何UserEnable
从“假”变为“真”
我使用 asp.net 4.0 和 VB.NET 作为我的数据库的语言和 SQL Server 2008。
首先,您应该在数据库中创建表用户,其列类似于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,并发送电子邮件确认。
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 并将特定用户的记录保存在数据库。
如果您使用的是 ASP.NET 内置成员控制,则可以使用
CreateUserWizard 控件的MailDefinition属性
MailDefinition 属性返回对一组属性的引用,这些属性组用于定义发送给新用户的电子邮件的格式和内容。常见设置包括主题行和发件人的回信地址。
.NET 4 框架
观看此视频,了解如何操作。
http://www.asp.net/security/videos/implement-the-registration-verification-pattern