[英]Web.config: sensitive settings
问题:
我想使用我的Facebook客户端密码在本地使用IIS运行ASP.NET MVC网站。 我还想使Facebook客户端的秘密不受源代码控制。 我将所有这些发布到Azure,因此在云中运行Web服务器时没有问题。 敏感设置直接进入App Service,而源代码控制永远不会看到它们。
原则上,将客户端机密保密不受源代码控制很容易。 我可以在Web.config的应用程序设置中添加一个配置源:
<appSettings configSource="facebookClientSecret.config" />
我所有的设置都可以进入facebookClientSecret.config
,该文件将添加到.gitignore
。
问题出在这里: 我的所有设置 。 我不想从源代码管理中隐藏所有设置:仅敏感设置。
我尝试这样做:
<appSettings> <add key="webpages:Version" value="3.0.0.0" /> <add key="webpages:Enabled" value="false" /> <add key="ClientValidationEnabled" value="true" /> <add key="UnobtrusiveJavaScriptEnabled" value="true" /> <add configSource="facebookAppSecret.config" /> <add key="StorageConnectionString" value="UseDevelopmentStorage=true" /> </appSettings>
但这显然是“不允许的”。 有没有办法让应用程序设置的子集来自单独的文件?
appSettings上的file属性非常合适。
<appSettings file="facebookAppSecret.config">
<add key="webpages:Version" value="3.0.0.0" />
<add key="webpages:Enabled" value="false" />
<add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusiveJavaScriptEnabled" value="true" />
<add key="StorageConnectionString" value="UseDevelopmentStorage=true" />
</appSettings>
设置将从facebookAppSecret.config文件以及<appSettings></appSettings>
条目中提取。
值得还注意到该文件的内容应该只包含一个<appSettings></appSettings>
块(即,它不应该包含<?xml version="1.0" encoding="utf-8" ?><configuration>...</configuration>
您将需要调整文件的“ 生成操作” (应为“内容”)和“ 复制到输出目录”项目设置(在Visual Studio中右键单击文件->“属性”),以便在生成时将文件包含在输出目录中。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.