web.config 在那里?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了web.config 在那里?相关的知识,希望对你有一定的参考价值。

创建Web.config文件  1.在“解决方案资源管理器”中,单击“刷新”图标以确认应用程序还没有 Web.config 文件。
  如果已使用网站管理工具或某些其他方式来配置应用程序,则可能已自动创建了 Web.config 文件。单击“刷新”更新文件列表。
  2.在“解决方案资源管理器”中,右击网站名称,然后单击“添加新项”。
  3.在“模板”窗口中,单击“Web 配置文件”。
  “名称”文本框中的文件名应为 Web.config。可以为该文件提供其他名称,不过这是默认名称。.config 文件扩展名可防止 ASP.NET 下载相应文件。
  4.单击“添加”创建该文件,然后将其打开进行编辑。
  该文件包含本主题后面“示例”部分中显示的代码,并具有一些初始默认值。应用程序从 %SystemRoot%\Microsoft.NET\Framework\<版本>\CONFIG 目录下的 Machine.config 和 Web.config 文件继承所有配置设置,但在此处看不到这些默认设置。如果要重写继承的默认设置或添加 httpHandlers 元素(ASP.NET 设置架构) 等集合元素,则只需创建应用程序级别和目录级别的 Web.config 文件。
  若要查看当前应用程序的所有配置设置,可以运行主题如何:以编程方式查看继承的配置设置和本地配置设置中包含的代码。也可以查看 %SystemRoot%\Microsoft.NET\Framework\<版本>\CONFIG 目录下的 Machine.config.comments 或 Web.config.comments 文件(这两个文件也包含有用的注释),但这两个文件将不会包含所有运行时设置,请参见如何:以编程方式查看继承的配置设置和本地配置设置。
  5.如果更改了 Web.config 文件,则保存该文件。
  保存 Web.config 文件会重新启动应用程序。也可以选择使用单个节元素的 configSource 属性指向某个辅助配置文件,更改辅助配置文件不会导致应用程序重新启动。有关更多信息,请参见节元素所继承的常规属性中的 configSource。
参考技术A 如果你已经有了一个asp.net的网站程序,那么你在网站的根目录下就可以找到,如果没有那就是没有添加web.config文件,就直接在asp.net程序的跟目录下点添加新项,找到后添加一个就可以了 参考技术B 在根目录下面

在 web.config 中硬编码密码是不是安全?

【中文标题】在 web.config 中硬编码密码是不是安全?【英文标题】:Is it safe to hardcode a password in web.config?在 web.config 中硬编码密码是否安全? 【发布时间】:2018-10-25 08:31:28 【问题描述】:

像这样在 asp.net-project 的 web.config 中写入密码有多安全:

<mailSettings>
    <smtp from="example@web.com">
       <network host="smtp.web.com"
        port="123"
        userName="username@web.com"
        password="12345"
        enableSsl="true"/>
     </smtp>
</mailSettings>

我对互联网安全不太熟悉,所以如果这不安全,还有其他选择吗?

【问题讨论】:

只要您不介意任何有权访问源代码或文件系统的人都能看到该密码。这本质上并不是一件坏事,这完全取决于您。 如果您有&lt;customErrors mode="Off"/&gt;,您将看到默认错误页面,根据错误,该页面可能会显示&lt;mailSettings&gt; 文件的web.config 部分。我会避免将其存储在那里。 将密码存储在普通配置文件中是一种不好的做法。最好将它们存储在环境变量中,这样它们就不会出现在版本控制系统中,或者如果您将应用程序部署到 Azure,有一个带有特殊配置文件的解决方案 (docs.microsoft.com/en-us/aspnet/identity/overview/features-api/…) 【参考方案1】:

研究加密 web.config 部分。

https://msdn.microsoft.com/en-us/library/bb986855.aspx

https://***.com/a/6224769/461822

有点像

"aspnet_regiis.exe -pef "system.net/mailSettings/smtp" "C:\inetpub\wwwroot\website" -prov RSAProtectedConfigurationProvider"

在部署到网络场时请考虑&lt;machineKey&gt; 的值。

如果您在 web.config 中设置 &lt;machineKey&gt;,则基本上是在泄露解密密钥。

就像 David 在上面的 cmets 中所说的那样,如果您愿意与有权访问您的代码的人分享秘密,那么就可以了。

如果没有,请创建一个您不介意共享凭据的测试 smtp 环境,并将这些凭据放入 web.config。

或者查看 Papercut 之类的工具进行本地测试,并在部署之前/之后更改 web.config 中的值。

【讨论】:

以上是关于web.config 在那里?的主要内容,如果未能解决你的问题,请参考以下文章

在使用web.config转换时,在web.config文件中获取此连接字符串ReplacableToken_?

Web.config 和 App.config 的区别分析

Web.config总结

app.config/web.config 中的变量

App.Config 与 Web.Config

web.config 覆盖 app.config ...为啥?