.NET Core环境变量和用户秘钥实现开发中的数据安全
前言:有很多人将秘钥,数据库连接字符串写到项目配置文件中,并提交到源代码控制或者共享源代码控制,并在那里使用,这使得项目出现了很大的风险。
首先新建一个 ASP.NET Core 的 MVC 项目,就可以直接进行测试。
一、注入 IConfiguration
首先将注入 IConfiguration 并命名为 Configuration。
在配置文件中并未设置 Key 为 computername 的属性,
但是可以根据 @Configuration["computername"] 来获取当前的PC的名称。
因为每台 Windows 电脑都会创建一个名为 computername 的环境变量。
将 Index.cshtml 修改为入下图所示。

在运行网站后得到的结果如下所示:

二、从配置文件 appsettings.json 中获取环境变量
在配置文件中加入图下红框中的代码。

将 Index.cshtml 修改为入下图所示。

在运行网站后得到的结果如下所示:

三、从项目中获取环境变量
在解决方案目录中选中当前 ASP.NET Core Web 项目
按下 Alt + Enter 打开项目属性面板
或者 右键点击项目 =》 选择 属性
随后选择调试(Debug)会有看到当前项目的环境变量了

随后在环境变量里面添加 先前在 appsetting.json 中添加的值

并且更改掉 appsetting.json 中的 Wechat 的值

在运行网站后得到的结果如下所示:

随后我们得出结论: appsettings.json 优先级小于 项目的环境变量
四、用户秘钥设置环境变量
我们首先删除掉 项目环境变量中的之前添加的Wechat,环境变量编程如下所示。

随后右键选中项目选择 管理用户机密(Manage User Secrets)。

这时打开一个 secrets.json 的新文件,移动鼠标可以看到它的路径。

当前文件不是一个加密的文件,并且它不是一个在源代码控制的文件。
随后在文件 secrets.js 加入代码如下所示, appsettings.json 文件的Wechat 应如下所示,
项目的环境变量的 Wechat 的值已经被删掉。

在运行网站后得到的结果如下所示:

随后我们得出结论: secrets.json 优先级大于 appsettings.json
由于 secrets.json 并不会提交到源代码控制中,保证了用于开发目的的数据更加安全。
.NET Core环境变量和用户秘钥实现开发中的数据安全的更多相关文章
- net core体系-web应用程序-4net core2.0大白话带你入门-5asp.net core环境变量详解
asp.net core环境变量详解 环境变量详解 Windows操作系统的环境变量在哪设置应该都知道了. Linux(centos版本)的环境变量在/etc/profile里面进行设置.用户级的 ...
- 【转】asp.net core环境变量详解
asp.net core环境变量详解 环境变量详解 Windows操作系统的环境变量在哪设置应该都知道了. Linux(centos版本)的环境变量在/etc/profile里面进行设置.用户级的环境 ...
- .NET Core 环境变量详解
一.概述 软件从开发到正式上线,在这个过程中我们会分为多个阶段,通常会有开发.测试.以及上线等.每个阶段对应的环境参数配置我们会使用不同的参数.比如数据库的连接字符串,开发环境一般我们都是连接的测试库 ...
- Linux编程 21 shell编程(环境变量,用户变量,命令替换)
一.概述 这篇介绍shell的变量使用,跟其实语言一样,都有声明变量,使用变量,在shell中变量允许你临时地将信息存储中shell脚本中,以便和脚本的其他命令一起使用. 1.1 环境变量 在前面章节 ...
- asp.net core环境变量详解
环境变量详解 Windows操作系统的环境变量在哪设置应该都知道了. Linux(centos版本)的环境变量在/etc/profile里面进行设置.用户级的环境变量在其它文件里面,不多说了,有兴趣的 ...
- Linux环境变量从用户配置改为系统配置
部署了一个新的tomcat到一个新的用户下,发下启动失败了 /home/personal/apache-tomcat/bin/catalina.sh: line 434: /usr/lib/jvm/j ...
- ssh-copy-id 拷贝用户秘钥
生成秘钥 ssh-keygen -t [rsa|dsa] 将会生成密钥文件和私钥文件 id_rsa,id_rsa.pub或id_dsa,id_dsa.pub 将 .pub 文件复制到B机器的 .ssh ...
- Xshell 登录 AWS CentOS 出现“所选择的用户秘钥未在远程主机上注册“,最终解决办法!
其实就是 登录用户名错了,是 root,不是centos 也不是 ec2-user ! Xshell 连接配置界面如下 最重要是 登录授权配置 最后,登录成功! 就这么简单
- Asp.Net Core 中的环境变量
Asp.Net Core 中的环境变量 软件开发环境在大多数软件开发组织中,我们通常具有以下开发环境. 开发环境--Development 演示(模拟.临时)环境--Staging 生产环境-- Pr ...
随机推荐
- C# 根据字符串生成二维码
1.先下载NuGet包(ZXing.Net) 2.新建控制器及编写后台代码 using System; using System.Collections.Generic; using System.D ...
- vuejs中的回车事件
@keyup.enter.native="事件名称"
- 2018092609-2 选题 Scrum立会报告+燃尽图 01
此作业要求参见:[https://edu.cnblogs.com/campus/nenu/2019fall/homework/8683] 一.小组情况组长:迟俊文组员:宋晓丽 梁梦瑶 韩昊 刘信鹏队名 ...
- Java多线程——对象及变量的并发访问
Java多线系列文章是Java多线程的详解介绍,对多线程还不熟悉的同学可以先去看一下我的这篇博客Java基础系列3:多线程超详细总结,这篇博客从宏观层面介绍了多线程的整体概况,接下来的几篇文章是对多线 ...
- Python常见字符串方法函数
1.大小写转换 S.lower() S.upper() 前者将S字符串中所有大写字母转为小写,后者相反 S.title() S.capitalize() 前者返回S字符串中所有单词首字母大写且其他字母 ...
- linux服务器cpu信息查看详解
在linux系统中,提供了/proc目录下文件,显示系统的软硬件信息.如果想了解系统中CPU的提供商和相关配置信息,则可以查/proc/cpuinfo.但是此文件输出项较多,不易理解.例如我们想获取, ...
- vue 做一个简单的TodoList
目录结构 index.html <!DOCTYPE html> <html> <head> <meta charset="utf-8"&g ...
- 使用 cAdvisor 主机上的容器
目录 前言 安装测试 安装 docker 安装docker-ce 启动 cAdvisor 容器 访问测试 prometheus 服务端配置 使用 promtool 检查配置文件 重新加载配置文件 前言 ...
- php: $$str
这种写法称为可变变量有时候使用可变变量名是很方便的.就是说,一个变量的变量名可以动态的设置和使用.一个普通的变量通过声明来设置,例如: <?php$a = "hello";? ...
- 【读一本书】《昇腾AI处理器架构与编程》--神经网络基础知识(2)
1 卷积神经网络:输入层 之前提到多层感知机的参数太多,导致训练耗时长并且对图像处理也不具有优势,因此大神们 就提出了多层神经网络,其中最经典的是卷积神经网络(Convolution Neural N ...