asp.net-core – 如何使用环境变量在ASP.NET Core 2.0中存储生产
根据我读过的
here,建议使用secrete管理器在开发期间存储机密,然后在部署到IIS时使用环境变量.我不太清楚最好的方法是什么 – 我需要能够在不同的IIS应用程序中将相同的变量设置为不同的值,因此系统范围的环境变量设置不起作用.
我知道我可以在web.config中为应用程序设置变量,但是VS会覆盖服务器上的web.config,即使在进行Web部署时项目中没有web.conifg也是如此.我知道使用Web部署来部署到生产可能不是一个好习惯,但我们希望将其用于暂存环境等. 有没有办法阻止Web部署覆盖web.config,如果它已经存在于目标站点上? 解决方法
ASP.NET Core不使用Web.config.它是作为发布的一部分添加的,仅用于与IIS中的托管兼容.您无意以任何有意义的方式修改或使用它.
ASP.NET Core中配置提供程序的内置选项包括:JSON,命令行参数,用户秘密,环境变量和Azure Key Valult.但是,User Secrets仅用于开发,并且在IIS中托管时难以使用命令行参数. (从技术上讲,您实际上可以修改Web.config以添加命令行参数,但如上所述,这将在下一次发布时被覆盖,因此它不是最稳定的方法.) 在剩余的JSON,环境变量和Azure Key Vault选项中,只有Azure Key Vault支持加密.无论您是否实际在Azure中托管,都可以使用Azure Key Vault,但它不是免费的.不过,它也不是很贵,所以值得深入研究. 在安全方面,JSON可能是最糟糕的选择,主要是因为它要求您实际将秘密存储在源控件中,而源控件是(或应该是)非启动器.环境变量虽然未加密,但可以得到保护.但是,如果相同的环境变量需要不同的秘密,那么在同一台服务器上运行多个应用程序很困难(尽管技术上并非不可能).您可以在技术上在用户级别设置环境变量,然后您还可以指定应用程序池以作为特定用户运行.虽然这有很多设置. 也就是说,完全可以创建自己的配置提供程序,这意味着您可以在技术上使用您喜欢的任何内容.例如,您可以编写SQL Server配置提供程序,然后将凭据存储在那里.您仍然需要在某处配置连接字符串,但也许您可以为所有站点的配置使用相同的连接字符串. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 实体框架 – ASP.NET Identity Model First因重命名的AspNe
- asp.net-mvc – ASP.NET MVC View可以使用来自不同项目的模
- asp.net-mvc – ASP.NET MVC NHibernate模型绑定
- asp.net-mvc-5 – 在MVC5中启用和使用角色管理
- asp.net-mvc – RedirectToAction不工作
- asp.net-mvc – 使用jquery Ajax加载PartialView?
- ASP.NET Core的Keycloak客户端
- asp.net – 如何使用SMTP通过Exchange Server发送邮件
- Asp.Net Identity – 登录后更新声明
- asp.net – 当usercontrol变得可见时执行javascript
- asp.net-mvc – RedirectToAction重定向查询参数
- asp.net使用用户代理字符串检测任何平板电脑设备
- 在ASP.NET中动态加载css
- asp.net-mvc-3 – 使用参数清理URL以获取MVC索引
- asp.net-mvc – 在作为列表传递的模型中循环遍历
- asp.net-mvc-4 – 发布后保留表单值(不是模型的一
- asp.net-mvc-3 – MVC3 – 使用ViewModel插入 –
- 缓存以便以后写入asp.net webservice中的数据库?
- asp.net – 无法加载类型’System.ServiceModel.
- asp.net-mvc – 如何在回发后保持dropdownlist选