如何使用smtpClient与ASP.Net安全地发送我的凭证

时间:2014-02-07 20:33:17

标签: c# asp.net security smtpclient

我的网站上有一个页面,用户可以向网站的管理员发送消息。 我使用服务器给我的电子邮件地址发送消息给自己。我在编码方面没有问题,但我关心的是我必须发送给服务器的凭证,如下所示:

System.Net.NetworkCredential myCredential = new System.Net.NetworkCredential("email", "password");
mySmtpClient.Credentials = myCredential;

我确信这会以明文形式发送这些信息。 我怎么能保证这个? 以下代码可以独立保护所有内容吗?

smtpClient.EnableSsl = true;

这些是我的服务器给我的一些信息。我应该使用它们吗?

Proxy Settings Exchange Online https://webmail.myserver.com (Port 443)
Principal name Exchange Online: msstd: webmail.myserver.com
Proxy authentication settings: Basic Authentication Webmail: webmail.myserver.com 

顺便说一下,直接在我的aspx文件上使用我的用户名和密码是安全的吗? 我的意思是,任何人都可以获得这些信息吗?

2 个答案:

答案 0 :(得分:3)

代码文件将以明文形式显示,但如果您使用SSL,则网络服务器和SMTP服务器之间的连接将是安全的。如果您(正如您所做)指定EnableSsl

,.NET将为您处理此问题

答案 1 :(得分:1)

Simon是对的,如果您使用SSL .NET将从您的应用程序处理到电子邮件服务器。也就是说,您应该确保通过有线通信加密此密码。如果它存储在数据库中(或从UI或其他东西传输),它应该在那里加密并在您的应用程序中解密。