我们往往需要在项目里使用一些机密数据,比如数据库的密码,再比如一些密钥。这些东西一般来说我们都会放到配置文件里。
但是这些东西是跟自己的账号相关的,我们在一些多人合作的项目中,尤其是开源项目肯定不能直接把这些内容写到配置文件,因为这会泄露我们的密钥或者密码。
所以机密这种东西应运而生,我们可以通过配置机密信息把我们的密钥,密码之类的东西都放到我们的本机上,只有在部署项目的时候才把真正的密钥写到配置文件中。这样我们就不用担心上传的配置文件泄露我们的机密信息了。
asp.net core
的机密用起来很简单,一共就两步。
我们在
asp.net core
的项目中打开命令提示符,这里需要注意的是,必须要在asp.net core
的项目文件夹下打开,不能是总的sln工程文件夹。然后输入
dotnet user-secrets init
如果这时候提示
Could not find a MSBuild project file in '你的路径'. Specify which project to use with the --project option.
请检查一下是否在项目文件夹下。
如果成功的话,应该会在项目的配置文件中添加了一个类似
<UserSecretsId>79a3edd0-2092-40a2-a04d-dcb46d5ca9ed</UserSecretsId>
这样的内容,这里面的Id是随机的,与例子不一致。
添加对应的内容,我们可以把对应的key value写进去。
这里我们以添加一个微软认证的Key为例
dotnet user-secrets set "Authentication:Microsoft:ClientId" "值"
这里的Authentication:Microsoft:ClientId
可以替换成任意值,使用冒号作为分隔符,相当于json配置文件里的层级。
这个如果转到配置文件就是
"Authentication": {
"Microsoft": {
"ClientId": "值",
}
用法的话其实很简单,就是用
Configuration
去读取内容,比如我们例子中的内容如果要读取的话就是
Configuration["Authentication:Microsoft:ClientId"]
发表评论