ASP.NET Core MVC中隐藏ConnectionString的简便方案咨询
不暴露ConnectionString的简单解决方案
方法1:用环境变量
- 把appsettings.json里的ConnectionString移除,改用系统环境变量存储
- 操作步骤:
- 在本地系统或部署服务器的环境变量中新增一个变量,比如命名为
MyDb_ConnectionString,值填写你的连接字符串 - 代码里直接读取环境变量:
var connectionString = Environment.GetEnvironmentVariable("MyDb_ConnectionString"); - 或者在appsettings.json里通过占位符引用(.NET Core 3.1及以上版本支持):
{ "ConnectionStrings": { "MyDb": "${MyDb_ConnectionString}" } }
- 在本地系统或部署服务器的环境变量中新增一个变量,比如命名为
- 优势:和代码完全解耦,本地、服务器、容器环境通用,不会被提交到版本控制仓库
方法2:本地开发用.NET用户机密
- 专门针对本地开发场景,避免敏感字符串被提交到Git
- 操作步骤:
- 右键项目 → 「管理用户机密」,系统会自动打开一个本地的
secrets.json文件(该文件不在项目目录内,不会被Git追踪) - 在
secrets.json中写入连接字符串:{ "ConnectionStrings": { "MyDb": "你的敏感连接字符串" } } - appsettings.json里可以保留空的配置项,.NET会自动优先读取用户机密中的值
- 右键项目 → 「管理用户机密」,系统会自动打开一个本地的
- 注意:用户机密仅适用于本地开发,生产环境请使用环境变量或云服务配置中心
额外提醒
- 务必删除appsettings.json里的原始敏感连接字符串,不要留下痕迹
- 检查.gitignore配置,确保包含敏感信息的文件(如用户机密相关目录)不会被提交到版本库
内容的提问来源于stack exchange,提问作者Matěj
相关产品推荐
相关产品推荐

