C# 健壮的电子邮件验证算法
我正在开发注册向导,目前面临着健壮的电子邮件验证算法的问题C# 健壮的电子邮件验证算法,c#,asp.net,.net,sql-server,asp.net-mvc-3,C#,Asp.net,.net,Sql Server,Asp.net Mvc 3,我正在开发注册向导,目前面临着健壮的电子邮件验证算法的问题 在我们获得用户指定的信息后,如名字,密码,电子邮件,我们应该将此信息保存到数据库中。我们也可以说,对于这个字符串,我们有相应的表 接下来,我们生成一些电子邮件验证令牌(只生成由一堆字符和数字组成的代码),并用一些时间戳将其保存到数据库中(用于超时功能) 因此,我感到沮丧。我对算法的一个要求是有机会不仅发送一次令牌,而且发送多次令牌。我需要这封信的原因是什么样的信不会被发送到电子邮件或一些技术问题在我这边的结果,这封信不会发送 所以,基于
名字
,密码
,电子邮件
,我们应该将此信息保存到数据库中。我们也可以说,对于这个字符串,我们有相应的表希望这有帮助 首先,将注册请求与成员表放在一个单独的表中 其次,当用户注册后,您可以创建一个令牌来验证电子邮件地址。如果用户在X小时内单击验证该令牌的链接,则删除该令牌并在成员资格表中创建用户 如果用户请求一个新令牌,您只需生成它并发送电子邮件。如果覆盖数据库中的令牌,那么显然第一封电子邮件中的链接将不再有效,这很好——用户只能验证最新的令牌 如果用户没有在X小时内单击验证令牌的链接,则注册请求会自动清除,用户将不得不重新注册。您确实可以使用cron类型的作业来实现这一点
我希望这会有所帮助。首先,将注册请求与会员表分开放在一个单独的表中 其次,当用户注册后,您可以创建一个令牌来验证电子邮件地址。如果用户在X小时内单击验证该令牌的链接,则删除该令牌并在成员资格表中创建用户 如果用户请求一个新令牌,您只需生成它并发送电子邮件。如果覆盖数据库中的令牌,那么显然第一封电子邮件中的链接将不再有效,这很好——用户只能验证最新的令牌 如果用户没有在X小时内单击验证令牌的链接,则注册请求会自动清除,用户将不得不重新注册。您确实可以使用cron类型的作业来实现这一点
我希望这能有所帮助。我希望您正在对密码进行哈希和盐析。@SLaks是的,我肯定会使用MD5密码哈希来存储密码。我刚刚写了一个简单的例子。MD5不是一个安全的散列。使用bcrypt。我建议您不允许同一用户注册两次!它在您的系统中管理它时会产生问题,并且会惹恼用户,用户必须重新填写表单。@Simon那么,当用户未验证其电子邮件时,会收到一条消息,告诉他此电子邮件已经键入了什么,用户不能使用它,应该输入另一封电子邮件吗?用户如何才能请求另一个与他的电子邮件相关的音调?我希望您正在对密码进行哈希和盐析。@SLaks是的,我肯定会使用MD5密码哈希来存储密码。我刚刚写了一个简单的例子。MD5不是一个安全的散列。使用bcrypt。我建议您不允许同一用户注册两次!它在您的系统中管理它时会产生问题,并且会惹恼用户,用户必须重新填写表单。@Simon那么,当用户未验证其电子邮件时,会收到一条消息,告诉他此电子邮件已经键入了什么,用户不能使用它,应该输入另一封电子邮件吗?用户怎么能请求另一个与他的电子邮件相关的音调呢?谢谢akmad!关于第一个问题:请注意,我们有关于用户的现有信息,以防他试图注册,然后再试一次。谢谢!关于第一个问题:请注意,我们有关于用户的现有信息,以防他试图注册,然后重试。我在独立表中有注册请求,但