当前位置:首页 > Web开发 > 正文

将PassWord=pwd赋值到原先的字符串中

2024-03-31 Web开发

  凡是我们将 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<Startup>(); 或者 builder.AddUserSecrets("UserSecretsId xxxx");

技术图片

2. 获取绑定类

(1).进行机密文件的添加:【dotnet user-secrets set "UserSettings:userName" "MaRu"】 和 【dotnet user-secrets set "UserSettings:userAge" 29】

(2).创建UserSettings类

1 public class UserSettings 2 { 3 public string userName { get; set; } 4 public int userAge { get; set; } 5 }

(3).操作GetSection和Get要领进行类的绑定。

1 //获取绑定类 2 { 3 var UserSettings = _Configuration.GetSection("UserSettings").Get<UserSettings>(); 4 var userName = UserSettings.userName; 5 var userAge = UserSettings.userAge; 6 }

3. 机密字符串的替换

(1).配景:数据库连接字符串写在appsettings.json中,,但是暗码不想写在里面,想写在机密文件中,那么我们该如何实现呢?

(2) 法式:

A:将暗码写到机密文件中 【dotnet user-secrets set "pwd" "123456"】

B:获取配置文件原先的字符串和机密文件中的pwd,将“PassWord=pwd”赋值到原先的字符串中,固然这里可以用字符串的拼接,但我们这里通过“SqlConnectionStringBuilder”类,来进行措置惩罚惩罚,需要安置措施集【System.Data.SqlClient】

代码详见:ConfigureService

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 }

转:https://www.cnblogs.com/yaopengfei/p/12129746.html

ASP.NET Core-用户机密文件【转】

温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/web/32288.html