我有一个使用EF代码第一次迁移的asp.net MVC应用程序。存储在Web Deploy pubxml文件中的数据库密码
我使用Web Deploy将此项目发布到Azure。
这一切运作良好,但我不喜欢的一件事是由Web Deploy创建的pubxml文件存储从Azure Web App配置下载的连接字符串。
这些连接字符串包含SQL Azure的密码,因为我在源代码控制的pubxml文件,这种情况并不理想:
<ObjectGroup Name="DefaultConnection" Order="3" Enabled="True">
<Destination Path="Data Source=tcp:###.database.windows.net,1433;Initial Catalog=###_db;User ID=###;Password=###" Name="Data Source=tcp:###.database.windows.net,1433;Initial Catalog=###_db;User Id=###;Password=###" />
<Object Type="DbCodeFirst">
<Source Path="DBMigration" DbContext="###.Server.Models.DAL.ApplicationDbContext, ###.Server.Models" MigrationConfiguration="###.Server.Migrations.Configuration, ###.Server" Origin="Configuration" />
</Object>
</ObjectGroup>
是否有配置它不存储密码或更好的办法在保证密码安全的同时进行部署的方式?
最简单的就是不要在源代码控制中存储pubxml文件。否则,在连接字符串和其他秘密中输入错误的值(占位符),并在部署后使用Azure面板设置正确的值(您也可以使用PowerShell自动执行此部分)。 –
默认情况下,密码被加密并且pubxml不包含在源代码管理中。请参阅https://msdn.microsoft.com/zh-cn/library/dd465337(v=vs.110).aspx中的“配置连接选项卡” – tmullaney