以纯文本形式存储密码是不安全的。 例如,存储在中的数据库连接字符串 appsettings.json 可能包含指定用户的
密码:
{	"ConnectionStrings": {		"Movies": "Server=(localdb)\\mssqllocaldb;Database=Movie-1;
User Id=johndoe;Password=pass123;MultipleActiveResultSets=true" }}
更安全的方法是将密码存储为机密。 例如:
dotnet user-secrets set "DbPassword" "pass123"
Password 从中的连接字符串中移除键值对 appsettings.json 。 例如:

{
"ConnectionStrings": {
"Movies": "Server=(localdb)\\mssqllocaldb;Database=Movie-1;

User Id=johndoe;MultipleActiveResultSets=true"
}
}

可以对对象的属性设置机密的值 SqlConnectionStringBuilder Password ,以完成连接字符串:
using System.Data.SqlClient; 
var builder = WebApplication.CreateBuilder(args);
var conStrBuilder = new SqlConnectionStringBuilder
(builder.Configuration.GetConnectionString("Movies"));
conStrBuilder.Password = builder.Configuration["DbPassword"];
var connection = conStrBuilder.ConnectionString;
var app = builder.Build();
app.MapGet("/", () => connection);
app.Run();
列出机密
假设文件上的应用 secrets.js 包含以下两个机密:

{
"Movies": {
"ServiceApiKey": "12345",
"ConnectionString":

"Server=(localdb)\\mssqllocaldb;Database=Movie- 1;

Trusted_Connection=True;MultipleActiveResultSets=true"
}
}

从项目文件所在的目录运行以下命令:
dotnet user-secrets list
随即显示以下输出
Movies:ConnectionString = Server=(localdb)\mssqllocaldb;Database=Movie- 1;
Trusted_Connection=True;
MultipleActiveResultSets=true Movies:ServiceApiKey = 12345
在前面的示例中,键名称中的冒号表示 机密 json 中的对象层次结构。
 
删除单个机密
假设文件上的应用 secrets.js 包含以下两个机密:
{ 
"Movies": {
  "ServiceApiKey": "12345",
  "ConnectionString": "Server=(localdb)\\mssqllocaldb;Database=Movie- 1;
  Trusted_Connection=True;MultipleActiveResultSets=true" }
}
从项目文件所在的目录运行以下命令:
dotnet user-secrets remove "Movies:ConnectionString"
已修改应用的 机密 json 文件,以删除与密钥关联的键值对 MoviesConnectionString :
{ "Movies": { "ServiceApiKey": "12345" } }
删除所有机密 -- 从项目文件所在的目录运行以下命令:
若要在 Visual Studio 中管理用户机密,请在解决方案资源管理器中右键单击项目,然后选择 "管理用户机密"
 
dotnet user-secrets clear

 利用 VisualStudio 管理用户机密

appsettings.json用机密替换字符串-利用 VisualStudio 管理用户机密的更多相关文章

  1. 在Asp.NET Core中如何优雅的管理用户机密数据

    在Asp.NET Core中如何优雅的管理用户机密数据 背景 回顾 在软件开发过程中,使用配置文件来管理某些对应用程序运行中需要使用的参数是常见的作法.在早期VB/VB.NET时代,经常使用.ini文 ...

  2. Word 查找和替换字符串方法

    因为项目需要通过word模板替换字符串 ,来让用户下载word, 就在网上找了找word查找替换字符串的库或方法,基本上不是收费,就是无实现,或者方法局限性太大 .docx 是通过xml来存储文字和其 ...

  3. 在.NET Core console application中使用User Secrets(用户机密)

    微软很坑地只在Microsoft.NET.Sdk.Web中提供了VS项目右键菜单的"管理用户机密"/"Manage User Secrets"菜单项,在使用Mi ...

  4. Logstash替换字符串,解析json数据,修改数据类型,获取日志时间

    在某些情况下,有些日志文本文件类json,但它的是单引号,具体格式如下,我们需要根据下列日志数据,获取正确的字段和字段类型 {'usdCnyRate': '6.728', 'futureIndex': ...

  5. JS 利用正则表达式替换字符串

    JS 利用正则表达式替换字符串 博客分类: JavaScript 学习资料 Java代码 收藏代码 JS 利用正则表达式替换字符串 var data = "123123,213,12312, ...

  6. php查询mysql中的json编码后的字符串内容的方法

    问题 mysql里存的是json编码后的字符串,其中中文会被转为unicode码,所以直接查询是查询不到的. mysql里的查询如 like "%\u6211\u662f%" 也是 ...

  7. ASP .NET CORE 根据环境变量支持多个 appsettings.json

    0.背景 在开发项目的过程当中,生产环境与调试环境的配置肯定是不一样的.拿个最简单的例子来说,比如连接字符串这种东西,调试环境肯定是不能连接生产数据库的.在之前的话,这种情况只能说是你 COPY 两个 ...

  8. IT咨询顾问:一次吐血的项目救火 java或判断优化小技巧 asp.net core Session的测试使用心得 【.NET架构】BIM软件架构02:Web管控平台后台架构 NetCore入门篇:(十一)NetCore项目读取配置文件appsettings.json 使用LINQ生成Where的SQL语句 js_jquery_创建cookie有效期问题_时区问题

    IT咨询顾问:一次吐血的项目救火   年后的一个合作公司上线了一个子业务系统,对接公司内部的单点系统.我收到该公司的技术咨询:项目启动后没有规律的突然无法登录了,重新启动后,登录一断时间后又无法重新登 ...

  9. 每天记录一点:NetCore获得配置文件 appsettings.json vue-router页面传值及接收值 详解webpack + vue + node 打造单页面(入门篇) 30分钟手把手教你学webpack实战 vue.js+webpack模块管理及组件开发

    每天记录一点:NetCore获得配置文件 appsettings.json   用NetCore做项目如果用EF  ORM在网上有很多的配置连接字符串,读取以及使用方法 由于很多朋友用的其他ORM如S ...

  10. ASP.NET Core appsettings.json 文件

    ASP.NET Core appsettings.json 文件 在本节中,我们将讨论 ASP.NET Core 项目中appsettings.json文件的重要性. 在以前的 ASP.NET 版本中 ...

随机推荐

  1. 用 while 生成猜数字

    import java.util.Random; import java.util.Scanner; public class zy2 { public static void main(String ...

  2. JavaScript:严格模式"use strict"

    因为历史遗留问题,JS其实存在很多feature,以及兼容性问题: 所以JS在ES5之后,新增了一个严格模式,以区别于普通模式,用来激活新的特性,使得某些代码的执行准确无误: 如何开启严格模式? 在J ...

  3. 基于Chromium开发的称重软件,集称重、计价、打印于一体,支持耀华、顶尖等多个厂家设备型号

    技术方案: 1.运行时使用.Net Framework4.6框架,界面使用WPF与Chromium. 2.上位机与下位机使用串口对接每家设备协议,上位机与UI使用WebSocket通讯. 3.数据库使 ...

  4. PowerUsageSummary.java源码分析

    在在线网站http://androidxref.com/上对Android版本6.0.1_r10源码进行分析 官方手机的应用耗电排行具体实现位置在:/packages/apps/Settings/sr ...

  5. [LeetCode]二进制求和

    题目 代码 class Solution { public: string addBinary(string a, string b) { int lenA = a.length(); int len ...

  6. Zabbix与乐维监控对比分析(八)——其他功能篇

    前面我们详细介绍了Zabbix与乐维监控的架构与性能.Agent管理.自动发现.权限管理.对象管理.告警管理.可视化.图形图表及网络功能方面的对比分析,接下来我们将对二者其他功能进行对比分析. 本篇是 ...

  7. python3连接postgresql/greenpulm

    python3安装:pip install psycopg2github地址:https://github.com/psycopg/psycopg2文档地址:http://initd.org/psyc ...

  8. Redis+Hbase+RocketMQ 实际使用问题案例分享

    需求 将Hbase数据,解析后推送到RocketMQ. redis使用list数据类型,存储了需要推送的数据的RowKey及表名. 简单画个流程图就是: 分析及确定方案 Redis 明确list中元素 ...

  9. Grafana 系列文章(二):使用 Grafana Agent 和 Grafana Tempo 进行 Tracing

    ️URL: https://grafana.com/blog/2020/11/17/tracing-with-the-grafana-cloud-agent-and-grafana-tempo/ ✍A ...

  10. .NET周报 【2月第1期 2023-02-04】

    国内文章 .NET 入门到高级路线 https://www.cnblogs.com/hejiale010426/archive/2023/02/01/17083913.html 笔者介绍了.NET入门 ...