在应用程序开发的过程中,有的时候需要在代码中保存一些机密的信息,比如加密密钥,字符串,或者是用户名密码等。通常的做法是保存到一个配置文件中,以前会把他保存到web.config中,但是在ASP.NET Core中,这一方式或许发生了改变,或者说你有更多多元化的方法, 以及更加优雅的的配置来设置或者保存这些机密资料

用户机密介绍

使用场景

  • 需要保存一些和第三方网站对接的密钥,比如和 微信,微博站点使用的 appkey
  • 给每个开发人员配置不用的用户名密码来访问一些资源
  • 开发人员在开发过程中使用各自本机的数据库,如何配置数据库地址、账号和密码

ASP.NET Core 提供了一种很优雅简洁的方式 User Secrets 用来解决这个事情

新建一个 ASP.NET Core Web 应用程序,Visual Studio中,在Web项目上右键,可以看到一个 管理用户机密 的菜单

image.png

secrets.json

image.png

secrets.json文件存储位置

在非Windows系统中,它的存储位置在

  1. ~/.microsoft/usersecrets/<userSecretsId>/secrets.json

在Windows系统中,它的位置在

  1. C:\Users\用户名\AppData\Roaming\Microsoft\UserSecrets\aspnet-WebAppCore-e278c40f-15bd-4c19-9662-541514f02f3e

可以看到,存储的上层文件夹就是project.json文件中的 userSecretsId 设定的值

在应用程序中使用

要在应用程序中访问配置的用户机密,你需要保证project.json文件中存在依赖项:Microsoft.Extensions.Configuration.UserSecrets 并且builder.AddUserSecrets()