ASP.NET连接字符串部署最佳实践
我收集了一份(希望有用的)总结,总结了我为完成这篇文章的主题而研究的方法,以及我在这些方法上遇到的问题。请告诉我你是否找到了其他你更喜欢的方法,特别是如果它们解决了我提到的方法没有解决的问题ASP.NET连接字符串部署最佳实践,asp.net,deployment,web-config,connection-string,msdeploy,Asp.net,Deployment,Web Config,Connection String,Msdeploy,我收集了一份(希望有用的)总结,总结了我为完成这篇文章的主题而研究的方法,以及我在这些方法上遇到的问题。请告诉我你是否找到了其他你更喜欢的方法,特别是如果它们解决了我提到的方法没有解决的问题 将连接字符串保留在web.config中,并使用XDT/msdeploy转换将其替换为符合我的活动生成配置(例如,web.PublicTest.config文件)的设置。我的问题是,我将一些特定于服务器的设置合并到一个具有许多配置元素的全局相同的文件中。此外,我不能在多个对等级应用程序之间共享连接字符串定义
查看我的以下博文: 如果您确实使用Quandary的答案,请使用不在站点文件夹中的密钥,就像asp.net对受保护的配置节所做的那样 我们手动批准进入暂存/生产的web.config更改。在可能的情况下,我们使用集成的而不是基于用户名的,但是我们在后面的例子中使用的一个选项是在SVN中为用户名/密码设置占位符
我们过去使用过单独的配置文件,但是我们在web.config修改中遇到了其他类型的问题,因此我们最近一直将其锁定在单个文件中。使用SQL Server时,您还可以使用集成安全/SSPI并将web Server计算机登录添加到SQL Server 这样,您就不必公开web.config中的任何内容,您可以像授予任何其他DB用户一样授予该登录的角色 尽管您必须了解要采取的措施和安全注意事项,因为在该机器上执行的任何恶意代码都可以访问Sql Server 关于
Ole1。我喜欢它——尽管你会笑,但目前测试和开发应用程序池运行在同一台IIS服务器上。请你澄清一下好吗?可以从相同的库方法使用此ini文件吗?具体来说,我有一个实体框架格式的连接字符串。谢谢,我不知道我可以在连接字符串中使用非对称密钥或加密连接字符串(无论您是什么意思)。我会研究更多关于这是如何做到的。@Shannon:不,不能。您必须使用读/写PrivateProfileString pinvokes,或者编写自己的ini序列化程序。优点是您可以手动更改它,如果它是XML字符串,则必须对引号之类的内容进行编码。在XML文件中手动执行这项操作意味着您需要了解所有这些转义序列,在ini文件中执行这项操作根本不需要转义序列。感谢后续的Quandry,我理解。感谢Eglasius。我喜欢综合安全的想法。它曾经是我的MO,我不记得我为什么停下来了。正如我们都经历过的,人类互动的每一点都是等待发生的。太棒了,谢谢。Eglasius简单地提到了“集成”,但没有提到添加登录。请注意,对不共享域的服务器有限制。您可以保存远程服务器密码,但该密码不能用于MSSQL filestream类型的列,并且还有其他限制。