ASP.NET Core-用户机密文件【转】
2021-04-30 20:30
标签:代码 添加 -- property 赋值 初始化 需要 htm 输入 一. 基本概念 1. 背景 通常我们将 AppSecret 和数据库连接字符串存储在配置文件中,web.config 或 appsettings.json,配置文件都需要提交到SVN 和git上,对于一些开发者自己用而不需要提交的数据, 并不想进行提交,这个时候可以存储到本地机密文件中。 或者一些机密文件,不想写到配置文件中,我们想保存到服务器磁盘的机密文件中,这样更加安全。 2. 机密文件相关指令 说明:要进入对应项目的根目录,打开命令行程序,进行下面的指令的输入. (1).【dotnet user-secrets init】:初始化密钥存储,前面的命令将 UserSecretsId 元素添加到 .csproj文件的 PropertyGroup 中。 默认情况下,UserSecretsId 的内部文本是一个 GUID。内部文本是任意的,但对项目是唯一的。 右键项目→编辑项目文件→即可查看生成的对应的UserSecretsId。 (2).【dotnet user-secrets set "xxx" "xxx"】:设置机密文件,eg:【dotnet user-secrets set "pwd" "123456"】,设置pwd的值为123456 。 PS:到目录【%APPDATA%\microsoft\UserSecrets\】下,找到刚才对应的UserSecretsId命名的文件夹,即该项目所有的机密文件都存在在该文件夹下的Secrets.json中。 PS:设置到指定位置 【dotnet user-secrets set "Movies:ServiceApiKey" "12345" --project "C:\apps\WebApp1\src\WebApp1"】 也可以直接右键项目→管理用户机密→直接打开secrets.json这个文件。 (3).【dotnet user-secrets remove "xxx"】:删除单个机密文件。 (4).【dotnet user-secrets clear】:删除所有机密文件 (5).【dotnet user-secrets list】:列出所有机密文件 二. 项目使用 1. 谁优先使用的问题 当配置文件和机密文件同时存在的使用,获取同一个键,获取的是机密文件中的值。 原因:当项目调用时,用户机密配置源会自动添加到 CreateDefaultBuilder 以使用预先配置的默认值初始化主机的新实例。 DevelopmentEnvironmentName 时,CreateDefaultBuilder 调用 AddUserSecrets。 但如果没有CreateDefaultBuilder,可以手动builder.AddUserSecrets 2. 获取绑定类 (1).进行机密文件的添加:【dotnet user-secrets set "UserSettings:userName" "MaRu"】 和 【dotnet user-secrets set "UserSettings:userAge" 29】 (2).创建UserSettings类 (3).利用GetSection和Get方法进行类的绑定。 3. 机密字符串的替换 (1).背景:数据库连接字符串写在appsettings.json中,但是密码不想写在里面,想写在机密文件中,那么我们该如何实现呢? (2) 步骤: A:将密码写到机密文件中 【dotnet user-secrets set "pwd" "123456"】 B:获取配置文件原先的字符串和机密文件中的pwd,将“PassWord=pwd”赋值到原先的字符串中,当然这里可以用字符串的拼接,但我们这里通过“SqlConnectionStringBuilder”类,来进行处理,需要安装程序集【System.Data.SqlClient】 代码详见:ConfigureService 转:https://www.cnblogs.com/yaopengfei/p/12129746.html ASP.NET Core-用户机密文件【转】 标签:代码 添加 -- property 赋值 初始化 需要 htm 输入 原文地址:https://www.cnblogs.com/fanfan-90/p/12149674.html1 public class UserSettings
2 {
3 public string userName { get; set; }
4 public int userAge { get; set; }
5 }
1 //获取绑定类
2 {
3 var UserSettings = _Configuration.GetSection("UserSettings").Get
1 public void ConfigureServices(IServiceCollection services)
2 {
3 //需要安装程序集:【System.Data.SqlClient】
4 var builder = new SqlConnectionStringBuilder(Configuration.GetConnectionString("str"));
5 builder.Password = Configuration["pwd"]; //从机密文件中获取pwd,并给赋值给上述的数据库连接串
6 var newStr = builder.ConnectionString; //得到新的连接串(包含Password),下面可以传给EF进行使用了
7
8
9 services.AddControllersWithViews();
10 }
上一篇:apache服务介绍
下一篇:C#中的unsafe
文章标题:ASP.NET Core-用户机密文件【转】
文章链接:http://soscw.com/index.php/essay/80556.html