Python微信订餐小程序课程视频

https://edu.csdn.net/course/detail/36074

Python实战量化交易理财系统

https://edu.csdn.net/course/detail/35475

一,引言

上一篇文章我们在 .Net Core Web 项目中添加了 “Microsoft.Azure.KeyVault” 的 Nuget 包操作 Azure KeyVault 的 Secrets 数据。微软已经将 “Microsoft.Azure.KeyVault” Nuget 遗弃了,推荐大家使用 “Azure.Security.KeyVault.Secrets”。

1)Azure Key Vault 机密客户端库允许我们安全地存储和控制对令牌、密码、API 密钥和其他机密的访问。该库提供创建、检索、更新、删除、清除、备份、恢复和列出机密及其版本的操作。

2)SecretClient 在 SDK 中提供同步和异步操作,允许根据应用程序的用例选择客户端。初始化 SecretClient 后,就可以与 Azure Key Vault 中的机密进行交互。

基于以上两点,今天继续分享 Azure Key Vault 的相关知识,使用新的 “Azure.Security.KeyVault.Secrets” 操作 Azure Key Vault 的 Secrets。

-------------------- 我是分割线 --------------------

1,Azure Kay Vault(一).NET Core Console App 获取密钥保管库中的机密信息

2,Azure Key Vault(二)- 入门简介

3,Azure KeyVault(三)通过 Microsoft.Azure.KeyVault 类库在 .NET Core 上获取 Secrets

4,Azure KeyVault(四)另类在 .NET Core 上操作 Secrets 的 类库方法-----Azure.Security.KeyVault.Secrets

二,正文

1,添加 “Azure.Security.KeyVault.Secrets” 的 Nuget 程序包

使用程序包管理控制台进行安装

?

| 1 | Install-Package Azure.Security.KeyVault.Secrets -Version 4.2.0 |

2,创建 ISecretsService 接口和 SecretsService 实现类,以及控制器方法

ISecretsService.cs

public interface ISecretsService{Task<string> GetSecretsAsync(string key);Task<string> SetSecretAsync(string key,string value);Task<string> DeleteSecretAsync(string key);}

SecrectsService.cs

    public class SecretsService : ISecretsService{private readonly SecretClient \_secretClient;public SecretsService(SecretClient secretClient){this.\_secretClient = secretClient;}public async Task<string> GetSecretsAsync(string key){var secret= await \_secretClient.GetSecretAsync(key);return secret.Value.Value;}public async Task<string> SetSecretAsync(string key, string value){var setSecret= await \_secretClient.SetSecretAsync(key, value);return setSecret.Value.Value;}public async Task<string> DeleteSecretAsync(string key){var operation= await \_secretClient.StartDeleteSecretAsync(key);var deleteSecret= await operation.WaitForCompletionAsync();await \_secretClient.PurgeDeletedSecretAsync(operation.Value.Name);return deleteSecret.Value.Value;}}

HomeController.cs

public class HomeController : Controller{private readonly ILogger \_logger;private readonly IKeyVaultService \_keyVaultService;private readonly ISecretsService \_secretsService;public HomeController(ILogger logger,IKeyVaultService keyVaultService,ISecretsService secretsService){\_logger = logger;\_keyVaultService = keyVaultService;\_secretsService = secretsService;}public async Task Index(){var list = new List();list.Add(new KeyValueViewModel() { Key ="cnbate-name", Value = await \_keyVaultService.GetSecretByKeyAsync("cnbate-name") });list.Add(new KeyValueViewModel() { Key = "cnbate-num", Value = await \_keyVaultService.GetSecretByKeyAsync("cnbate-num") });list.Add(new KeyValueViewModel() { Key = "cnbate-time", Value = await \_keyVaultService.GetSecretByKeyAsync("cnbate-time") });return View(list);}public IActionResult Privacy(){return View();}**public async Task Secrets(){var list = new List();list.Add(new KeyValueViewModel() { Key = "cnbate-name", Value = await \_secretsService.GetSecretsAsync("cnbate-name") });list.Add(new KeyValueViewModel() { Key = "cnbate-num", Value = await \_secretsService.GetSecretsAsync("cnbate-num") });list.Add(new KeyValueViewModel() { Key = "cnbate-time", Value = await \_secretsService.GetSecretsAsync("cnbate-time") });return** **View(list);}**[ResponseCache(Duration = 0, Location = ResponseCacheLocation.None, NoStore = true)]public IActionResult Error(){return View(new ErrorViewModel { RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier });}}

3,添加对 SecretsService 和 SecretClient 的注入

services.AddSingleton(new Appsettings(Env.ContentRootPath));
services.AddSingleton(x => new SecretClient(vaultUri: new Uri(Appsettings.app("AzureKeyVault", "Endpoint")), credential: new DefaultAzureCredential()));
services.AddScoped();

4,测试使用新的获取 Secrets 的 Nuget 包中的方法是否能正常操作 Azure KeyVault 的 Secrets 数据

F5 运行项目,获取保存的所有的 Secrets 数据

Bingo !!! 成功。添加,删除 Secrets 的操作,我就不再演示了,大家可以自行下载代码进行操作。

三,结尾

本文所分享的内容也存在着很多我自己的一些理解,有理解不到位的,还希望多多包涵,并且指出不足之处。

参考资料:关于 Azure Key Vault

github:https://github.com/yunqian44/Azure.KeyVault

作者:Allen

版权:转载请在文章明显位置注明作者及出处。如发现错误,欢迎批评指正。

Azure KeyVault(四)另类在 .NET Core 上操作 Secrets 的类库方法-----Azure.Security.KeyVault.Secrets相关推荐

  1. 在windows 2008 server core 上搭建sql server 2012 alwayson group

    前言 自 SQL 2005以来,MSFT在SQL server的每个版本都增加了不少令人兴奋的闪亮点,SQL Server 2012也不例外,其中SQL 2012  Alwayson group就是其 ...

  2. OpenCV学习笔记(四十一)——再看基础数据结构core OpenCV学习笔记(四十二)——Mat数据操作之普通青年、文艺青年、暴力青年 OpenCV学习笔记(四十三)——存取像素值操作汇总co

    OpenCV学习笔记(四十一)--再看基础数据结构core 记得我在OpenCV学习笔记(四)--新版本的数据结构core里面讲过新版本的数据结构了,可是我再看这部分的时候,我发现我当时实在是看得太马 ...

  3. Practice:在2008 core上部署和管理DHCP服务器

    (一).在Server Core中安装DHCP服务 使用命令行的方式安装DHCP服务,并不是server core的专利,在window server 2008系统里也可以做到,命令略有不同. 在se ...

  4. 译 | 在 Azure SQL 上节约成本的八种方法

    点击上方关注"汪宇杰博客" 原文:John 'JG' Chirapurath 翻译:汪宇杰 导语 当今世界,企业正崭露头角,渴望重整与重建,但仍处于不确定的时期.节约成本并将开支重 ...

  5. .net core上 K8S(七).netcore程序的服务发现

    正文 上一章我们分享了k8s的网络代理模式,今天我们来分享一下k8s中的服务发现. 1.环境变量模式的服务发现 k8s默认为我们提供了通过环境变量来实现服务发现的功能,前提是 1.需要service在 ...

  6. ASP.NET Core和Blazor Code Venture:配置Azure AD身份验证

    目录 介绍 背景 安装开发环境 先决条件 安装框架和工具 安装Azure Active Directory 创建一个新用户 使用Azure AD进行服务器端Blazor身份验证 第一次运行 下载ToD ...

  7. star ccm 报java错误_在 Linux VM 上运行 STAR-CCM+ 与 HPC Pack - Azure Virtual Machines | Microsoft Docs...

    在 Azure 中的 Linux RDMA 群集上运行 STAR-CCM+ 和 Microsoft HPC Pack 09/13/2016 本文内容 重要 经典 VM 将于 2023 年 3 月 1 ...

  8. 如何在Windows Azure VM上的SQL Server和Windows Azure SQL Database两者中做出选择

    作者信息:本篇文章是由SQL Server Cloud Infrastructure Team的 Madhan Arumugam 和 Guy Bowerman共同著作. 简介 把SQL 数据托管在哪里 ...

  9. 比较MongoDB在公有云上的性能:AWS、Azure和Digital Ocean

    比较MongoDB在公有云上的性能:AWS.Azure和Digital Ocean 英文原文: http://blog.mongodirector.com/comparing-mongodb-perf ...

最新文章

  1. MySQL安装ODBC驱动出现126错误
  2. u-boot-2009.08在2440上的移植详解(三)
  3. LeetCode_每日一题(8月)
  4. java 前端导出exvel_使用纯前端做的Excel导出了解一下
  5. 5G时代到来,是机遇还是灾难?
  6. 小程序在wxml页面中取整
  7. 笔记本电脑摄像头不能用_电脑没有摄像头怎么办
  8. fastdfs-启动服务-上传文件-连接问题
  9. 【ACDU推荐好文】手把手教你 DBCA 搭建 Oracle ADG
  10. 郭明錤:苹果将在明年第二季度推出增强现实头盔
  11. WebStorm 自定义字体+颜色+语法高亮+导入导出用户设置
  12. 电子密码锁程序C语言,基于C语言STC89C52单片机电子密码锁的设计与仿真
  13. android7.1以太网动态ip,可以这样解决win10/8.1/7中的WIFI或以太网”没有有效的ip配置”问题 | MOS86...
  14. 分布式事务实施方案总结
  15. AUTO_ACKNOWLEDGE和CLIENT_ACKNOWLEDGE
  16. 基于Revit铝模板设计-区域配模
  17. 互联网金融数据分析指标【汇总】
  18. 菜鸟笔记-DuReader阅读理解基线模型代码阅读笔记(八)—— 模型训练-训练
  19. Cadence学习记录(三)芯片封装设计
  20. Ubuntu进不去图形化界面的解决方案

热门文章

  1. 解构「私域流量」(二)|如何构建微信私域闭环?
  2. 电大计算机网考ppt,2017最新电大计算机应用基础形考PowerPoint2010答案.doc
  3. 复习SGI STL二级空间配置器(内存池) | 笔记自用
  4. 惠普232dw/233dw激光打印机手机WIFI连接实操、初始化
  5. 史上最详细的戴尔(DELL)D620 D630系笔记本拆机加显卡改造 多图
  6. centos8 “No URLs in mirrorlist“如何解决
  7. Centos进入dracut模式,报 /dev/centos/swap does not exist,如何恢复
  8. Dos中echo off ,echo on 和 @echo on的使用
  9. 5G工业路由器领跑者:双模路由器(5G+4G)
  10. Study_microblog笔记Part 10--添加关注功能