在我们开发dotnet core项目中,难免有一些敏感的信息,例如:数据库连接字符串、加密密钥、第三方API的key等等。
我们一般常规的做法是将这些信息在配置文件中,当程序需要的时候直接读取配置文件的信息,但是这样就带来个问题,怎么保证这些敏感信息的安全和每个人使用的这些敏感信息都是分配给他的。例如张三只能用a账号连接B库,李四只能用C账号连接D库。
在dotnet core中,我们可以使用管理用户机密工具来管理敏感信息,把敏感信息存放在项目以为的地方。也就是一个serets.json文件中。
首先我们先创建一个dotnet core项目,点击项目,会看到【管理用户机密】:
点击【管理用户机密】会出现一个secrets.json文件,改文件的路径:
敏感信息可以在这个文件进行编辑,例如连接数据库的字符
保存后,会在csproj文件中生成一个UserSecretsId:
需要注意的是当secrets.json和appsetting.json有相同的配置信息的时候,程序会先读取secrets.json的配置信息。
通过这个VS自带的工具我们就可以很方便的管理项目中的敏感信息。
通用的道理在其它的平台下,也是这样操作,不一样的secrets.json存储的位置不一样。