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