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>
我对互联网安全不太熟悉,所以如果这不安全,还有其他选择吗?
【问题讨论】:
只要您不介意任何有权访问源代码或文件系统的人都能看到该密码。这本质上并不是一件坏事,这完全取决于您。 如果您有<customErrors mode="Off"/>
,您将看到默认错误页面,根据错误,该页面可能会显示<mailSettings>
文件的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"
在部署到网络场时请考虑<machineKey>
的值。
如果您在 web.config 中设置 <machineKey>
,则基本上是在泄露解密密钥。
就像 David 在上面的 cmets 中所说的那样,如果您愿意与有权访问您的代码的人分享秘密,那么就可以了。
如果没有,请创建一个您不介意共享凭据的测试 smtp 环境,并将这些凭据放入 web.config。
或者查看 Papercut 之类的工具进行本地测试,并在部署之前/之后更改 web.config 中的值。
【讨论】:
以上是关于web.config 在那里?的主要内容,如果未能解决你的问题,请参考以下文章