我想将存储在我的解决方案的各个项目中的配置文件中的存储和SQL连接字符串移动到只能在Azure门户中访问。
在源代码管理中保持连接字符串意味着如果有人查看我们的代码库,他们就可以无限制地访问我们的Azure帐户。
在Azure网站中,可以在门户中设置连接字符串,并在下次部署时保留连接字符串。是否可以对云服务执行相同的操作?
答案 0 :(得分:4)
不,这是不可能的。云服务是一个VM,它不是一个可以使用连接字符串的应用程序。
如果您有一个持续集成服务器,那么您可以做的是:在将应用程序部署到云服务之前,运行一个脚本,将连接字符串的值更改为您喜欢的内容,并进行部署。这样,连接字符串仅在CI服务器中可见,而不在您的代码中。
但请注意,如果您已将连接字符串提交到代码库,则无法从历史记录中删除它们。 (除非你做了force push,这是不推荐的。)
答案 1 :(得分:2)
现在应该可以使用Azure Key Vault。我没有尝试过 - 但是计划 - 但这是一个关于getting started with key vault然后using key vault from a web app的好教程。对于云服务,这是否完全相同,我不确定。
答案 2 :(得分:0)
这确实很晚,但是如果您将项目部署为Web服务,则安全存储连接字符串的最简单方法是:
您的App服务->配置->连接字符串->新的连接字符串
在这里,添加连接字符串的名称(例如DBConnectionString)和连接字符串的值。此值应使用上面添加的值替换Web.config文件中名称为DBConnectionString的任何虚拟连接字符串。
您的 Web.config 文件应包含以下内容。您可以在此处用任何内容替换SOME DUMMY VALUE
;部署的服务将从Azure门户获取连接字符串。本地调试将要求您再次添加连接字符串。
<connectionStrings>
<add name="DBConnectionString"
connectionString="SOME DUMMY VALUE" />
</connectionStrings>