我不明白电子邮件激活的工作原理

时间:2010-11-28 07:52:13

标签: c# email-validation

我想验证用户电子邮件是否有效,并将此电子邮件转换为我系统中的ID。 但我不知道如何在邮件中建立链接,激活帐户(如Facebook和其他人) )我并不真正理解选择链接后会发生什么。

我想生成一个像“sdklbsdgk4493”这样的键进入一次 - 这样猜测很难,但对于很多人而言,复制和粘贴并不是一件容易的事情,我可能会用这个解决方案来惹恼他们。

有什么想法或想法吗?

p.s:我在c#工作,所以如果可以用c#完成......那就太棒了:))

谢谢Asaf

4 个答案:

答案 0 :(得分:10)

在数据库中插入新用户时,其状态应为“已停用”,并插入您生成的“GUID”。您向他们发送一个指向激活页面的链接,该链接将在查询字符串中包含此GUID。它看起来像这样:

www.YourSite.com/Activation.aspx?GUID=jdfhg43h98234

Activation.aspx页面中,您从查询字符串中获取此GUID,并将其与数据库中的GUID进行比较。然后激活具有该GUID的帐户。

答案 1 :(得分:5)

  1. 创建用户

  2. 为用户生成唯一字符串

  3. 拥有一个存储唯一字符串的表,用户ID,保存是否被激活的布尔值,生成日期,到期日期以及如果您对这些激活字符串有不同的用途,类型(链接到另一个表)

  4. 现在,在电子邮件中,您应该获取字符串并将其写入电子邮件中,并附带指向您将用于验证的页面的链接,例如whatever.com/verify.aspx?activationString=hd3fd33fen342n43 < / p>

  5. 在此页面中,您可以在包含密钥的表格中进行查询搜索,如果尚未验证

答案 2 :(得分:2)

您的用户表位于数据库中(或者您存储用户列表的位置),只需添加一个列,说明用户的邮件是否已经过验证。 对验证邮件添加一个链接,该链接使用特定于用户的代码(例如它在数据库中的索引)触发某些PHP。 PHP会将用户的“验证”列设置为true,并且它将完成。

它并不像最初看起来那么复杂。

答案 3 :(得分:2)

这个想法是创建一个随机密钥,将其保存到连接到useraccount的数据库,提供一个指向用户电子邮件的链接,该链接可以指向一个web服务(或常规网站),它将密钥作为查询字符串。然后将激活连接到该特定密钥的帐户。