ASP.NET Core 用户账密管理

发布时间 2023-10-17 20:06:26作者: C余L小R鱼

使用ASP.NET Core的用户账密管理功能,可以在开发环境中安全地存储和获取敏感信息,如数据库账户密码。以下是一个简单的示例:

1、首先,确保在ASP.NET Core应用程序项目中安装了Microsoft.Extensions.Configuration.UserSecrets包。如果尚未安装,可以通过NuGet包管理器控制台或Visual Studio的NuGet包管理器进行安装。

打开命令行窗口,并导航到项目的根目录。

运行以下命令初始化用户机密【仅需执行一次】:

bash
dotnet user-secrets init

该命令将生成一个GUID作为用户机密存储的标识符,并将其保存在.csproj文件中。【可能出现生成的guid保存到backup.csproj中 需要手动将其添加到原有csproj文件中并删除backup.csproj】

2、添加用户机密:

bash
dotnet user-secrets set "Database:Password" "your-password"  //暂不支持一次添加多组  如果添加多组 直接用bat命令 一行一行添加  bat文件也要放在项目根目录

上述命令将Database:Password键和相应的密码值添加到用户机密存储中。

3、在ASP.NET Core应用程序中读取用户机密:【注】该方法不具有热加载功能

csharp
using Microsoft.Extensions.Configuration;

//...

var configuration = new ConfigurationBuilder()
    .AddUserSecrets<Startup>()
    .Build();

var password = configuration["Database:Password"];

上述代码片段将读取Database:Password键对应的密码值,并将其存储在password变量中。

上述示例中,"Database:Password"是用户机密存储中的键,你可以根据自己的需求替换为其他键名。

保存的账密:一般在本地 C:\Users\Administrator\AppData\Roaming\Microsoft\UserSecrets\guid\secrets.json(guid为第一步生成所得)