webbuilder

第三十七节:系统证书管理和gRPC基于数字证书的认证和授权

本小妞迷上赌 提交于 2020-08-06 01:21:32
一. 证书管理 1. 如何生成证书 (1). 关于阿里云证书和证书的相关概念  详见:https://www.cnblogs.com/yaopengfei/p/10648151.html (抽时间重新配置一遍) (2). 本地生成测试证书  详见:https://docs.microsoft.com/en-us/powershell/module/pkiclient/new-selfsignedcertificate?view=win10-ps  这里使用案例9:【New-SelfSignedCertificate -Subject "localhost" -TextExtension @("2.5.29.17={text}DNS=localhost&IPAddress=127.0.0.1&IPAddress=::1")】 2. 本地计算机证书管理 (1).查看计算已有的证书  cmd命令行→输入certmgr→可以查看当前用户下的证书以及受信任的颁发机构 (2).证书导入和添加信任  cmd命令行→输入mmc→进入控制台页面(默认空白)→选中文件中的‘添加/删除管理单元’→将'证书'一项添加进去 导入步骤:  A.以管理员的身份运行powershell,运行证书生成指令【New-SelfSignedCertificate -Subject "ypf" -TextExtension

Asp.net Core 3.1基于AspectCore实现AOP,实现事务、缓存拦截器

霸气de小男生 提交于 2020-07-28 08:31:54
最近想给我的框架加一种功能,就是比如给一个方法加一个事务的特性Attribute,那这个方法就会启用事务处理。给一个方法加一个缓存特性,那这个方法就会进行缓存。 这个也是网上说的面向切面编程AOP。 AOP的概念也很好理解,跟中间件差不多,说白了,就是我可以任意地在方法的前面或后面添加代码,这很适合用于缓存、日志等处理。 在net core2.2时,我当时就尝试过用autofac实现aop,但这次我不想用autofac,我用了一个更轻量级的框架,AspectCore。 用起来非常非常的简单,但一开始还是走了一点弯路,主要是网上都是net core3以下的教程,3以下的使用方法跟之前有一些不同。 先安装NuGet包,包名:AspectCore.Extensions.DependencyInjection 然后在Program.cs类中增加一行代码,这是net core 3的不同之处,这句添加的代码,意思就是用AspectCore的IOC容器替换内置的。因为AOP需要依靠IOC实现,所以必须得替换掉内置的IOC。 public class Program { public static void Main( string [] args) { CreateHostBuilder(args).Build().Run(); } public static IHostBuilder

.NET CORE 依赖注入 实践总结

霸气de小男生 提交于 2020-07-28 04:29:42
原文: .NET CORE 依赖注入 实践总结 知识点回顾 依赖包。 Microsoft.Extensions.DependencyInjection.Abstractions 核心对象和方法。 IServiceCollection 。注入对象的容器。注意它只存储对象的元数据,并不保存实例对象。 IServiceProvider 。注入对象的提供者。它负责提供具体的对象实例。在架构中,IServiceProvider有2种身份,一种是Root ServiceProvider,由service.BuildServiceProvider()创建,生命周期贯穿整个应用程序,AddSingleton对象保存在这里。另外一种则是普通IServiceProvider,由IServiceScope创建,生命周期即为AddScoped的生命周期。AddScope 的对象保存在这里。普通ServiceProvider由Root ServiceProvider创建的IServiceScope创建。 IServiceScope 。表某一个生命周期范围。由ServiceProvider.CreateScope()创建。 注入方式,知识点一 。 注入功能默认在Startup类中的ConfigureServices方法中。 注入方式,知识点二 。支持以下三种方式 AddScoped。生命周期为Scoped类型

第十节:IdentityServer4隐式模式介绍和代码实操演练

左心房为你撑大大i 提交于 2020-07-27 08:40:29
一. 前言 1.简介   简化模式(implicit grant type)不通过第三方应用程序的服务器,直接在浏览器中向认证服务器申请令牌,步骤在浏览器中完成,令牌对访问者是可见的,且客户端不需要认证。 注:该模式也有很大的弊端,就是请求令牌在浏览器中能被看到。 2. 流程图 流程 (A)客户端将用户导向认证服务器。 (B)用户决定是否给于客户端授权。 (C)假设用户给予授权,认证服务器将用户导向客户端指定的"重定向URI",并在URI的Hash部分包含了访问令牌。 (D)浏览器向资源服务器发出请求,其中不包括上一步收到的Hash值(#号的部分)。 (E)资源服务器返回一个网页,其中包含的代码可以获取Hash值中的令牌。 (F)浏览器执行上一步获得的脚本,提取出令牌。 (G)浏览器将令牌发给客户端。 (H)客户端拿到令牌以后,就可以去请求资源服务器获取资源了。 3. 流程剖析 步骤A: 导向认证服务器,如下请求,进而再导向认证服务器的登录页面。 GET /authorize?response_type=token&client_id=s6BhdRkqt3&state=xyz&redirect_uri=https%3A%2F%2Fclient%2Eexample%2Ecom%2Fcb 参数包括:   response_type:表示授权类型,此处的值固定为"token",必选项。

[Asp.Net Core] Blazor Server Side 扩展用途

扶醉桌前 提交于 2020-07-26 01:17:09
前言 大概3个星期之前立项, 要做一个 CEF+Blazor+WinForms 三合一到同一个进程的客户端模板. 这个东西在五一的时候做出了原型, 然后慢慢修正, 在5天之前就上传到github了. 地址 : https://github.com/BlazorPlus/BlazorCefApp 但是一直在忙各种东西, 没有时间写博客. 情况 情况是这么一个情况 , 这个东西能运行, 够用. 也写了7个例子. 离当初的目标还有一些距离. 需要更多的时间去填坑. CEF方面, 是按需包装, 没有用到的功能是没处理的. 不过按照原先设想, 大部分人都不会有去定制这个CEF的需要. 测试 看这篇博文的网友, 如果不想从github下载编译, 从 http://opensource.spotify.com/ 另行下载 CEF 的资源包, 可以直接在微云上下载 已经编译好的版本 : https://share.weiyun.com/oibpnIro 项目模板 如图, 这是一个标准的 Blazor server side 工程. 有 Program.cs , 有 Startup.cs , 有 Shared/Pages, 有 wwwroot 其中引用的包是 CefLibCore , 源代码在 https://github.com/BlazorPlus/CefLite ,

Asp.Net Core 3.1 的启动过程--(5)

孤者浪人 提交于 2020-04-30 13:52:18
前言 本文主要讲的是Asp.Net Core的启动过程,帮助大家掌握应用程序的关键配置点。 1、创建项目 1.1、用Visual Studio 2019 创建WebApi项目。 这里面可以看到有两个关键的类。 一个Program,一个stsrtup Program里面有一个Main函数,Main函数里面会调用我们的CreateHosbuilder这个方法,CreateHosbuilder里面返回了一个IHostBuilder,那么IHostBuilder就是我们应用程序启动的核心接口 1.2、我们转到定义看一下IHostBuilder这个接口的定义 这个接口主要有6个方法这里面我们需要关注的是 : ConfigureAppConfiguration、ConfigureHostConfiguration、和ConfigureServices 为了演示整个应用程序的启动过程我们回到Program,修改CreateHostBuilder 在里面添加一些代码,把方法名打印出来 public class Program { public static void Main( string [] args) { Console.WriteLine( " Hello World! " ); CreateHostBuilder(args).Build().Run(); } public static

Asp.Net Core 3.1 的启动过程--(5)

ⅰ亾dé卋堺 提交于 2020-04-30 13:51:30
前言 本文主要讲的是Asp.Net Core的启动过程,帮助大家掌握应用程序的关键配置点。 1、创建项目 1.1、用Visual Studio 2019 创建WebApi项目。 这里面可以看到有两个关键的类。 一个Program,一个stsrtup Program里面有一个Main函数,Main函数里面会调用我们的CreateHosbuilder这个方法,CreateHosbuilder里面返回了一个IHostBuilder,那么IHostBuilder就是我们应用程序启动的核心接口 1.2、我们转到定义看一下IHostBuilder这个接口的定义 这个接口主要有6个方法这里面我们需要关注的是 : ConfigureAppConfiguration、ConfigureHostConfiguration、和ConfigureServices 为了演示整个应用程序的启动过程我们回到Program,修改CreateHostBuilder 在里面添加一些代码,把方法名打印出来 public class Program { public static void Main( string [] args) { Console.WriteLine( " Hello World! " ); CreateHostBuilder(args).Build().Run(); } public static

ASP.NET Core 3 使用原生 依赖注入 集成 AspectCore ,实现 AOP 功能

人盡茶涼 提交于 2020-04-26 13:55:59
在NETCORE中可以使用AOP的方式有很多很多,包括国内优秀的开源框架asp.netcore同样可以实现AOP编程模式。 IOC方面,个人喜欢net core 3自带的DI,因为他注册服务简洁优雅,3个生命周期通俗易懂,所以就没使用autofac等其他容器,AOP方面,使用了AspectCore 所以要在nuget中添加AspectCore.Extensions.DependencyInjection的依赖包,这里大家可能会有疑问,利用mvc的actionFilter不就可以实现了么,为什么还要引用DP呢,因为呀,actionFilter只在controller层有效,普通类他就无能为力了,而DP无所不能。 步骤1、安装 AspectCore.Extensions.DependencyInjection 1.3.0 Nuget包 步骤2、修改 Program.cs using AspectCore.Extensions.DependencyInjection; using Microsoft.AspNetCore.Hosting; using Microsoft.Extensions.Hosting; namespace WebApplication4 { public class Program { public static void Main(string[] args)

.NetCore学习笔记:三、基于AspectCore的AOP事务管理

时光总嘲笑我的痴心妄想 提交于 2020-04-26 13:30:37
AOP(面向切面编程),通过预编译方式和运行期间动态代理实现程序功能的统一维护的一种技术。AOP是OOP的延续,是函数式编程的一种衍生范型。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。 AspectCore 提供了一个全新的轻量级和模块化的Aop解决方案,现在已经支持Asp.Net Core。 实现AOP类TransactionalAttribute: 1 /// <summary> 2 /// 为工作单元提供事务一致性 3 /// </summary> 4 public class TransactionalAttribute : AbstractInterceptorAttribute 5 { 6 IUnitOfWork _unitOfWork { get ; set ; } 7 8 public async override Task Invoke(AspectContext context, AspectDelegate next) 9 { 10 try 11 { 12 _unitOfWork = context.ServiceProvider.GetService( typeof (IUnitOfWork)) as IUnitOfWork; 13 _unitOfWork

.NetCore学习笔记:三、基于AspectCore的AOP事务管理

℡╲_俬逩灬. 提交于 2020-04-26 13:00:31
AOP(面向切面编程),通过预编译方式和运行期间动态代理实现程序功能的统一维护的一种技术。AOP是OOP的延续,是函数式编程的一种衍生范型。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。 AspectCore 提供了一个全新的轻量级和模块化的Aop解决方案,现在已经支持Asp.Net Core。 实现AOP类TransactionalAttribute: 1 /// <summary> 2 /// 为工作单元提供事务一致性 3 /// </summary> 4 public class TransactionalAttribute : AbstractInterceptorAttribute 5 { 6 IUnitOfWork _unitOfWork { get ; set ; } 7 8 public async override Task Invoke(AspectContext context, AspectDelegate next) 9 { 10 try 11 { 12 _unitOfWork = context.ServiceProvider.GetService( typeof (IUnitOfWork)) as IUnitOfWork; 13 _unitOfWork