ubuntu中使用机密数据Secrets
目录
aptnetcore使用secrets管理私密数据
前言
在项目中, 数据库连接, 账户及密码等如果存储在appsetting.json
中就太不安全了, 所以生产时都是放在环境变量中读取的.
在开发中可能存在每一台开发机用到的一些变量都不一样的情况, 这个时候如果写在appsettings.development.json
中每次提交版本控制就不方便了.
所以dotnet-cli贴心的提供了 user-secrets
命令, 来管理开始时用户的私密数据.
使用
设置usersecretsid
在项目根目录输入 dotnet user-secrets list
, 可以看到错误提示
could not find the global property 'usersecretsid' in msbuild project '/home/xueyou/website-demo/website-demo.csproj'. ensure this property is set in the project or use the '--id' command line option.
这提示我们, 要想使用secrets管理机密, 需先定义usersecretsid
并且根据上面的提示可以知道, 它在.csproj
文件中寻找usersecretsid
, 那我们就在此文件中定义usersecretsid
编辑.csproj
文件在propertygroup
内增加<usersecretsid>79a3edd0-2092-40a2-a04d-dcb46d5ca9ed</usersecretsid>
usersecretsid
值是guid生成的, 每一个值都会实际对应到文件夹的名称上
- windows中,
%appdata%\microsoft\usersecrets\<user_secrets_id>\secrets.json
- linux中,
~/.microsoft/usersecrets/<user_secrets_id>/secrets.json
设置机密
dotnet user-secrets set "wechatappkey" "x3423feed2435dd"
其中keywechatappkey
是dotnet core配置系统中的key, 所以可以是:
号分隔, 映射到配置树
dotnet user-secrets list
可以查看当前机密
代码中访问机密
public class startup { private string _wechatkey= null; public startup(iconfiguration configuration) { configuration = configuration; } public iconfiguration configuration { get; } public void configureservices(iservicecollection services) { _wechatkey = configuration["wechatappkey"]; } public void configure(iapplicationbuilder app) { var result = string.isnullorempty(_wechatkey) ? "null" : "not null"; app.run(async (context) => { await context.response.writeasync($"secret is {result}"); }); } }
脚注
[asp.net core 优雅的在开发环境保存机密](https://www.cnblogs.com/savorboard/p/dotnetcore-user-secrets.html)
上一篇: Java开发笔记(十一)常见的数学函数
推荐阅读
-
在ASP.NET 2.0中操作数据之四十八:对SqlDataSource控件使用开放式并发
-
在ASP.NET 2.0中操作数据之五十二:使用FileUpload上传文件
-
在ASP.NET 2.0中操作数据之四十六:使用SqlDataSource控件检索数据
-
在ASP.NET 2.0中操作数据之五十六:使用ObjectDataSource缓存数据
-
ubuntu linux下使用Qt连接MySQL数据库的方法
-
在ASP.NET 2.0中操作数据之五十九:使用SQL缓存依赖项SqlCacheDependency
-
在ASP.NET 2.0中操作数据之六十六:在TableAdapters中使用现有的存储过程
-
在ASP.NET 2.0中操作数据之六十七:在TableAdapters中使用JOINs
-
使用JDBC在MySQL数据库中如何快速批量插入数据
-
Java 使用poi把数据库中数据导入Excel的解决方法