在ASPX.CS页面或Web.Config中指定网络凭据

时间:2014-01-24 08:59:17

标签: c# asp.net security web-config networkcredentials

这是我在ASP.net网站上玩简单发送电子邮件功能时的一个随机想法:

MailMessage mailMessage = new MailMessage();
mailMessage.To.Add("test@gmail.co.uk");
mailMessage.From = new MailAddress("test2@gmail.com");
System.Net.NetworkCredential basicauthenticationinfo = new    
System.Net.NetworkCredential("username", "pass123");

以上是让我思考的代码摘录。部署网站后,“查看源代码”允许我查看我的网站的HTML,但我找不到任何方法可以在其后面的ASPX.CS文件中看到C#编码。我也试过使用FireBug,但没有运气。那么,任何查看我网站的人都无法看到上述信息,这是否安全?

我已经看到了上述代码的其他示例,其中人们通常在Web.Config文件中指定NetworkCredentials。这有什么好处更安全吗?

为了安全起见,主要的想法是尽可能多地尝试使用Webconfig,或者这只是为了保持代码“更整洁”?

1 个答案:

答案 0 :(得分:1)

web.config文件是一个更好的地方,好处是:

  • 配置信息位于您可以轻松配置的配置文件中;
  • ASP.NET将
  • *.config文件视为受特殊保护的文件,它们永远不会被提供;
  • 您可以在没有实际配置文件的情况下在Git网站上发布您的代码,并确信不会打开任何安全漏洞。

通过对配置信息进行硬编码,您可以放弃这些优势,并在安全方面让您的生活更加艰难。