在ASP.NET中密码重置时出现问题

时间:2009-07-21 16:41:45

标签: asp.net membership forgot-password

我正在开发一个应用程序,我应该为忘记密码并向他们发送新密码的用户设计一个页面。我正在使用ASP.NET成员资格和密码格式应该进行哈希处理。

我的问题是发送邮件失败,密码已经更改,哇!没有工作可以做。

你的解决方案是什么?

6 个答案:

答案 0 :(得分:1)

您应该向用户发送包含链接的电子邮件,以确认密码重置(否则您可以通过猜测其电子邮件将密码重置为其他用户)。在链接页面上,用户将确认密码重置(甚至自己更改密码)。

但最好不要以任何形式或形式发送密码。这是最安全的。

流程

  1. 用户通过电子邮件请求重置密码。
  2. 他们收到一封带有链接的电子邮件
  3. 他们点击链接并提供一个新密码,该密码立即被哈希并存储在系统中。

答案 1 :(得分:1)

您可以暂时将受影响用户的passwordFormat值设置为aspnet_Membership表中的“Clear”,为其分配密码,然后处理电子邮件的工作。

将aspnet_Membership.passwordFormat值设置为0会将格式更改为“清除文本”,这意味着它未加密。 这不安全 ,但会允许登录。之后,您可以重置密码,它将被更改回2(加密)。

alt text

答案 2 :(得分:0)

用户应该再次更改密码,希望电子邮件能够成功。

如果他们输入了错误的地址,他们应该联系可以更正其电子邮件地址的管理员。

答案 3 :(得分:0)

如果可以在实际将更改提交到数据库之前判断电子邮件是否已成功发送,那么这将是一个不错的选择。情况并非总是如此,但也许它可以适用于您的应用程序。

通常根据我的经验,如果电子邮件失败,ASP将抛出异常。如果发生这种情况,请不要在数据库中执行任何操作,如果邮件通过则更改密码。这并不意味着他们会收到电子邮件,但无论如何都无法解决电子邮件旅行中的问题。在此失败后,上述选项将适用。 ;)

答案 4 :(得分:0)

我不知道asp.net中对这种功能的支持。

但是,有些网站会向您发送一封电子邮件,其中包含点击链接(有些日期会过期)。单击哪一个,将确保您承诺执行该操作(即只有在收到电子邮件并点击他们收到的链接后才更改密码。)

答案 5 :(得分:0)

如果电子邮件不起作用,ASP.NET还支持密码恢复的问题和秘密答案方法。