当前位置: 首页 > news >正文

购物商城类网站备案微商产品展示网站源码

购物商城类网站备案,微商产品展示网站源码,wordpress 图片延迟,做推广有什么好网站什么是Secrets应用程序通常会通过使用专用的存储来存储敏感信息#xff0c;如连接字符串、密钥等。通常这需要建立一个密钥存储#xff0c;如Azure Key Vault、Hashicorp等#xff0c;并在那里存储应用程序级别的密钥。要访问这些密钥存储#xff0c;应用程序需要导入密钥存… 什么是Secrets应用程序通常会通过使用专用的存储来存储敏感信息如连接字符串、密钥等。通常这需要建立一个密钥存储如Azure Key Vault、Hashicorp等并在那里存储应用程序级别的密钥。要访问这些密钥存储应用程序需要导入密钥存储SDK并使用它访问这些密钥。这可能需要相当数量的模板代码这些代码与应用的实际业务领域无关因此在多云场景中可能会使用不同厂商特定的密钥存储这就成为一个更大的挑战。让开发人员在任何地方更容易访问应用程序密钥 Dapr 提供一个专用的密钥构建块 允许开发人员从一个存储获得密钥。使用 Dapr 的密钥存储构建块通常涉及以下内容设置一个特定的密钥存储解决方案的组件。在应用程序代码中使用 Dapr Secrets API 获取密钥。在Dapr的Component文件中引用密钥工作原理服务A调用 Dapr Secrets API提供要检索的Serects的名称和要查询的项名字。Dapr sidecar 从Secrets存储中检索指定的机密。Dapr sidecar 将Secrets信息返回给服务。Dapr目前支持的Secrets存储请见存储使用Secrets时应用程序与 Dapr sidecar 交互。sidecar 公开Secrets API。可以使用 HTTP 或 gRPC 调用 API。使用以下 URL 调用 HTTP APIhttp://localhost:dapr-port/v1.0/secrets/store-name/name?metadataURL 包含以下字段dapr-port 指定 Dapr sidecar 侦听的端口号。store-name 指定 Dapr Secrets存储的名称。name 指定要检索的密钥的名称。metadata 提供Secrets的其他信息。此段是可选的每个Secrets存储的元数据属性不同。有关元数据属性详细信息项目实战通过Dapr SDK获取secrets仍然使用FrontEnd项目并使用本地文件存储Secrets首先在默认component目录C:\Users\username\.dapr\components中新建文件secrets01.json声明密钥内容{RabbitMQConnectStr: amqp://admin:123456192.168.43.101:5672 }在此目录新建secrets01.yaml定义storeapiVersion: dapr.io/v1alpha1 kind: Component metadata:name: secrets01 spec:type: secretstores.local.fileversion: v1metadata:- name: secretsFilevalue: C:\Users\username\.dapr\components\secrets01.json- name: nestedSeparatorvalue: :定义接口获取Secrets01的内容新建SecretsControllerusing Dapr.Client;using Microsoft.AspNetCore.Mvc; using Microsoft.Extensions.Logging;using System.Collections.Generic; using System.Threading.Tasks;namespace FrontEnd.Controllers {[Route([controller])][ApiController]public class SecretsController : ControllerBase{private readonly ILoggerSecretsController _logger;private readonly DaprClient _daprClient;public SecretsController(ILoggerSecretsController logger, DaprClient daprClient){_logger logger;_daprClient daprClient;}[HttpGet]public async TaskActionResult GetAsync(){Dictionarystring, string secrets await _daprClient.GetSecretAsync(secrets01, RabbitMQConnectStr);return Ok(secrets);}} }运行Frontenddapr run --dapr-http-port 3501 --app-port 5001 --app-id frontend dotnet .\FrontEnd\bin\Debug\net5.0\FrontEnd.dll验证此api获取成功通过IConfiguration访问SecretsDapr还提供了从IConfiguration中访问Secrets的方法首先引入nuget包Dapr.Extensions.Config在Program.cs中修改注册public static IHostBuilder CreateHostBuilder(string[] args) Host.CreateDefaultBuilder(args).ConfigureAppConfiguration(config {var daprClient new DaprClientBuilder().Build();var secretDescriptors new ListDaprSecretDescriptor { new DaprSecretDescriptor(RabbitMQConnectStr) };config.AddDaprSecretStore(secrets01, secretDescriptors, daprClient);}).ConfigureWebHostDefaults(webBuilder {webBuilder.UseStartupStartup().UseUrls(http://*:5001);});在SecretsController注入IConfigurationprivate readonly ILoggerSecretsController _logger;private readonly DaprClient _daprClient;private readonly IConfiguration _configuration;public SecretsController(ILoggerSecretsController logger, DaprClient daprClient, IConfiguration configuration){_logger logger;_daprClient daprClient;_configuration configuration;}在SecretsController中新增接口[HttpGet(get01)]public async TaskActionResult Get01Async(){return Ok(_configuration[RabbitMQConnectStr]);}调用接口获取数据成功其他组件引用SecretsDapr的其他组件同样可以引用Secrets我们以上节RabbitMQBinding为例修改rabbitbinding.yamlapiVersion: dapr.io/v1alpha1 kind: Component metadata:name: RabbitBinding spec:type: bindings.rabbitmqversion: v1metadata:- name: queueNamevalue: queue1- name: hostsecretKeyRef:name: RabbitMQConnectStrkey: RabbitMQConnectStr- name: durablevalue: true- name: deleteWhenUnusedvalue: false- name: ttlInSecondsvalue: 60- name: prefetchCountvalue: 0- name: exclusivevalue: false- name: maxPriorityvalue: 5 auth:secretStore: secrets01secretKeyRef元素引用指定的密钥。它将替换以前的 明文 值。 在 auth 中找到对应的secretStore。现在运行Frontenddapr run --dapr-http-port 3501 --app-port 5001 --app-id frontend dotnet .\FrontEnd\bin\Debug\net5.0\FrontEnd.dll在RabbitMQ Management中发送消息消费成功 APP info: FrontEnd.Controllers.RabbitBindingController[0]APP .............binding.............11122444限制Secrets访问权限我们可以在Dapr的默认配置文件C:\Users\username\.dapr\config.yaml中设置Secrets的访问权限现在我们尝试禁止secrets01的权限apiVersion: dapr.io/v1alpha1 kind: Configuration metadata:name: daprConfig spec:tracing:samplingRate: 1zipkin:endpointAddress: http://localhost:9411/api/v2/spanssecrets:scopes:- storeName: secrets01defaultAccess: deny设置之后Frontend会启动失败因为我们在Program.cs中设置了读取secrets01。 APP Unhandled exception. Dapr.DaprException: Secret operation failed: the Dapr endpoint indicated a failure. See InnerException for details.APP --- Grpc.Core.RpcException: Status(StatusCodePermissionDenied, Detailaccess denied by policy to get RabbitMQConnectStr from secrets01)APP at Dapr.Client.DaprClientGrpc.GetSecretAsync(String storeName, String key, IReadOnlyDictionary2 metadata, CancellationToken cancellationToken)APP --- End of inner exception stack trace ---APP at Dapr.Client.DaprClientGrpc.GetSecretAsync(String storeName, String key, IReadOnlyDictionary2 metadata, CancellationToken cancellationToken)APP at Dapr.Extensions.Configuration.DaprSecretStore.DaprSecretStoreConfigurationProvider.LoadAsync()APP at Dapr.Extensions.Configuration.DaprSecretStore.DaprSecretStoreConfigurationProvider.Load()APP at Microsoft.Extensions.Configuration.ConfigurationRoot..ctor(IList1 providers)APP at Microsoft.Extensions.Configuration.ConfigurationBuilder.Build()APP at Microsoft.Extensions.Hosting.HostBuilder.BuildAppConfiguration()APP at Microsoft.Extensions.Hosting.HostBuilder.Build()APP at FrontEnd.Program.Main(String[] args) in C:\demo\test\DaprBackEnd\FrontEnd\Program.cs:line 20我们可以修改配置让其允许apiVersion: dapr.io/v1alpha1 kind: Configuration metadata:name: daprConfig spec:tracing:samplingRate: 1zipkin:endpointAddress: http://localhost:9411/api/v2/spanssecrets:scopes:- storeName: secrets01defaultAccess: denyallowedSecrets: [RabbitMQConnectStr]重启Frontend成功以下表格列出了所有可能的访问权限配置ScenariosdefaultAccessallowedSecretsdeniedSecretspermission1 - Only default accessdeny/allowemptyemptydeny/allow2 - Default deny with allowed listdeny[“s1”]emptyonly “s1” can be accessed3 - Default allow with deneied listallowempty[“s1”]only “s1” cannot be accessed4 - Default allow with allowed listallow[“s1”]emptyonly “s1” can be accessed5 - Default deny with denied listdenyempty[“s1”]deny6 - Default deny/allow with both listsdeny/allow[“s1”][“s2”]only “s1” can be accessed相关文章Dapr实战一 基础概念与环境搭建Dapr .NET Core实战二 服务调用Dapr .NET Core实战三状态管理Dapr .NET 实战四发布和订阅Dapr .NET 实战五Actor
http://www.pierceye.com/news/881266/

相关文章:

  • asp.net网站开发教程品牌型网站建设
  • 海南网站网络推广建设网站需要注意的事项
  • 营销外包网站网站类别标签文本
  • 企业概况简介解答网站内容优化策略
  • ImQQ网站是怎么做的做网站把自己做死
  • 房产网站制作流程php网站开发教程网
  • 小程序商城名字谷歌优化技巧
  • 备案的时候需要网站吗seo搜索引擎优化公司
  • 网站 空间转移wordpress后台点击菜单没反应应
  • 企业网站可以自己做国外域名交易网站
  • 龙岗网站建设费用明细国外的服务器做的网站在国外能打开在国内打不开是什么原因
  • 个人网站的设计与实现摘要东莞学校网站建设
  • 深圳建设局招标网站网站空间pdf下载不了
  • 中国网站建设服务中心百度搜索风云榜电脑版
  • 开发网站性能监控网站开发常见技术问题
  • wordpress 手风琴插件长沙网站优化联系方式
  • 上海松江水处理网站建设做网站项目
  • 长沙快速建站模板仿牌网站怎么做301跳转
  • 网站建设与管理和计算机网络技术网站运行速度慢的原因
  • 百度推广网络推广微信网站公司网站建设设计服务
  • 免费建站有哪些网站代码编程教学入门
  • 湖南衡五建设公司网站中国网络营销网
  • 做企业网站有什么工作内容有创意的网络公司名字
  • 广西城乡与住房建设厅网站房产网站栏目建设
  • 已收录的网站不好优化上海上市公司排名
  • 保定网站建设公司大全开发微信微网站建设
  • 微信扫码抢红包网站做渝网互联重庆网站制作
  • 用wordpress开发网站缪斯设计官网
  • 黄南州wap网站建设公司旅游类网站做百度竞价
  • 中国电力建设集团有限公司网站wordpress购买