2

可能重复:
发送到带有联系表格 asp.net 的电子邮件

如何使用 C# 从 ASP.NET 页面发送电子邮件至忘记密码,密码将自动通过电子邮件发送到备用 ID。我需要如何使用 C# 从 ASP.NET 页面发送电子邮件。

4

4 回答 4

3

不乏关于此的文章和教程

旁注:能够通过电子邮件向用户发送他们的密码意味着您以纯文本形式存储他们的密码。请,不要那样做。密码应以加密形式存储。如果用户忘记了密码,请通过电子邮件向他们发送一个临时链接,以便他们重置密码。

于 2011-02-23T20:58:49.553 回答
2

您可以使用SmtpClient类在 .NET 应用程序中发送电子邮件。

于 2011-02-23T20:57:06.977 回答
1

您的建议听起来像是安全风险。不建议通过电子邮件发送密码,因为这假定您将纯文本密码存储在某处。由于您应该只知道密码的加盐哈希,因此您可能希望让用户重置他们的密码。

我想如果你仍然有理由发送电子邮件,你可以在这里查看一个广泛的教程。不过说真的,如果你不散列密码,你可能会危及所有用户的安全,如果你通过电子邮件发送他们更是如此。

于 2011-02-23T20:57:42.720 回答
1

如上所述(+1'd btw),简短的回答是使用SmtpClient类。

但是,通过电子邮件发送密码是很危险的。根据经验:

  • 不要以明文形式发送密码
  • 不要以明文形式存储密码

存储密码时(如果您没有为您完成所有这些工作的框架)

  • 创建盐
  • 将盐附加到密码
  • 散列结果字符串
  • 存储盐和生成的哈希
  • 丢弃密码
  • 进行身份验证时,将盐添加到新提供的密码中,对结果字符串进行哈希处理,并与您存储的哈希值进行比较

如果用户忘记了密码,请向该用户发送一封电子邮件,其中包含一次性使用、时间敏感(1 小时后过期?)、唯一链接以重置他/她的密码。要求用户在密码重置表单上手动提供他/她的帐户名或其他识别标准也是一种很好的做法。

于 2011-02-23T21:13:17.793 回答