2011-02-23 41 views
2

可能重复:
sending to an email with contact form asp.net电子邮件在asp.net

如何从ASP.NET页面使用C#发送电子邮件作为取回密码,密码会自动通过电子邮件发送到备用ID。我需要如何使用C#从ASP.NET页面发送电子邮件。

+3

请不要通过电子邮件发送密码。 (你甚至不应该以纯文本存储它们)。 – driis 2011-02-23 21:01:20

+0

非常感谢大家的建议...但是很抱歉地说我只是一个例子..当然要发送一个自动邮件...或者给电子邮件发送一些文本框的值可能是... – lock 2011-02-23 21:12:31

回答

2

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

+0

谢谢darin .. – lock 2011-02-23 21:33:56

1

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

我想如果你还有一些理由发送电子邮件,你可以查看一个广泛的教程here开始。但是,严重的是,如果你不存在密码哈希值,那么你可以危害所有的用户安全性,如果你正在通过邮件发送密码,那么你就更加危险了。

3

有没有短缺的文章和tutorials就此。

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

1

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

但是,围绕密码发送电子邮件是很危险的。作为一个经验法则:

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

当存储的口令(如果你不” t有一些框架可以为你做这一切)

  • 创建一个盐
  • 追加盐密码
  • 哈希生成的字符串
  • 商店的盐和得到的散列
  • 丢弃密码
  • 进行身份验证时,该盐添加到 新设的密码,散列 生成的字符串和比较,以你 存储的散列

如果用户忘记了自己的密码,发送给该用户包含一次性使用,时间敏感(以1小时后到期?)的电子邮件,U nique-link重置他/她的密码。最好还是要求用户在密码重置表单上手动提供他/她的帐户名称或其他识别标准。

+0

请问什么是“盐”? – lock 2011-02-23 21:29:36

+0

另外如何设置密码在未来1小时内过期? – lock 2011-02-23 21:29:59

+0

Salt:http://en.wikipedia.org/wiki/Salt_(cryptography) – canon 2011-02-23 21:33:31