繁体   English   中英

Web.config:敏感设置

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM