.Net(C#)
.Net(C#)
江浙沪柯蓝
这个作者很懒,什么都没留下…
展开
-
IdentityServer4(七):Consent授权页支持
Consent支持原创 2020-01-20 20:05:00 · 3172 阅读 · 0 评论 -
IdentityServer4(六):集成ASP.NET Core Identity
集成ASP.NET Core Identity原创 2020-01-16 20:09:56 · 3161 阅读 · 0 评论 -
IdentityServer4(五):使用EF Core持久化配置和操作数据
使用Entity Framework Core持久化配置和操作数据IdentityServer4.EntityFramework配置Stores前文中,我们所有的IdentityServer4配置都是在代码中写死的,在实际的生产环境中肯定不能这么处理。本篇将使用Entity Framework Core持久化配置和存储操作数据。IdentityServer4.EntityFrameworkI...原创 2020-01-13 20:20:10 · 7653 阅读 · 2 评论 -
IdentityServer4(四):ASP.NET Core中的API访问
文章目录认证授权服务中客户端配置的修改MVC网站客户端的修改使用`访问令牌`访问API服务本篇基于前文介绍的API访问的控制和用户身份的认证,本篇将在ASP.NET Core应用中把这两者结合起来。OpenID Connect和OAuth 2.0组合的优点在于,我们可以通过单一协议和与令牌服务的一次交换来实现。到目前为止,我们仅在令牌请求期间请求标识(身份)资源。当我们在获取令牌后,我们...原创 2020-01-09 23:03:07 · 2489 阅读 · 0 评论 -
IdentityServer4(三):基于ASP.NET Core的交互式认证授权
基于ASP.NET Core的交互式认证授权演示效果服务端配置示例创建一个MVC客户端网站上一篇中已经添加了一个认证授权中心服务,本篇在此前的基础上进行扩展,通过添加OpenID Connect协议以支持交互式用户身份验证。本示例代码中,认证授权中心运行在http://localhost:5000下,ASP.NET Core MVC 客户端网站运行在http://localhost:5002...原创 2020-01-03 22:35:48 · 2864 阅读 · 1 评论 -
IdentityServer4(一):概念及基本介绍
概述基本介绍官方资源基本介绍IdentityServer4是用于ASP.NET Core的OpenID Connect和OAuth 2.0框架。它在您的应用程序中启用以下功能:身份验证服务所有应用程序(Web,本机,移动,服务)的集中式登录逻辑和工作流。IdentityServer是OpenID Connect 的官方认证实现。单点登录/退出多种应用程序类型的单点登录/注销。...原创 2019-12-28 09:28:41 · 13513 阅读 · 0 评论 -
IdentityServer4(二):使用Client Credentials模式控制API的访问
IdentityServer4(1):客户端凭证原创 2019-12-30 19:45:01 · 3839 阅读 · 0 评论 -
.NET微服务从0到1:部署到K8S
kubernetes(K8S)K8S是用于自动部署,扩展和管理容器化应用程序的开源系统。开发环境配置Kubernetes很多镜像国内无法稳定访问,可参见k8s-for-docker-desktop进行配置。配置成功后先执行命令kubectl version查看kutectl是否安装成功查看DashboardWindows环境下执行命令获取登录令牌$TOKEN=((kubectl -n kube-system describe secret default | Select-String原创 2020-05-09 12:06:04 · 1727 阅读 · 0 评论 -
.NET微服务从0到1:APM(SkyWalking )
文章目录Skywalking安装配置对ASP.NET Core 应用的支持SkywalkingSkywalking是一个用Java编写的APM系统,为应用程序提供的监视、跟踪和诊断等功能。安装配置version: '3.3'services: elasticsearch: image: docker.elastic.co/elasticsearch/elasticsearch...原创 2020-05-05 15:32:03 · 1480 阅读 · 0 评论 -
.NET微服务从0到1:配置中心(Apollo)
文章目录安装配置配置.NET中的使用Apollo是携程框架部门研发的分布式配置中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性,适用于微服务配置管理场景。安装配置以下yml依赖于同级目录下的sql文件夹,可在Github下载version: '2'services: apollo-quick-start: ...原创 2020-04-27 19:36:49 · 1670 阅读 · 0 评论 -
.NET微服务从0到1:链路追踪(Zipkin)
文章目录介绍安装配置.NET下的使用介绍Zipkin是一个分布式跟踪系统,用来收集微服务架构中的时序数据,以用于调用链分析。Zipkin提供了In-Memory、MySql、Elasticsearch等存储方式。安装配置服务端安装我们可以再本地开发环境中安装一个In-Memory的Zipkindocker run -d -p 9411:9411 openzipkin/zipkin...原创 2020-04-18 14:41:33 · 2671 阅读 · 0 评论 -
.NET微服务从0到1:服务注册与发现(Consul)
文章目录AA原创 2020-03-08 13:57:47 · 2555 阅读 · 0 评论 -
.NET微服务从0到1:API网关(Ocelot)
文章目录OcelotOcelot的五种部署方式开始使用新建网关项目添加ocelot配置文件将Ocelot服务添加到容器服务将Ocelot添加请求管道创建身份认证服务新建一个Identity.API项目添加`IdentityServer4 `配置创建一个ServiceA终章参考OcelotOcelot是用 .NET Core 实现的一个开源API网关。包含身份验证、路由、请求聚合等功能。能够轻松...原创 2020-03-05 23:34:53 · 1891 阅读 · 0 评论 -
ASP.NET Core 全局异常处理和日志记录
文章目录添加自定义业务异常类添加全局异常过滤器像容器添加服务添加自定义业务异常类public class BusinessException : Exception{ public BusinessException(){} public BusinessException(string message) : base(message) {} public B...原创 2020-02-18 19:23:44 · 2875 阅读 · 0 评论 -
C#8.0中的索引和范围
C#8.0中的索引和范围索引范围参考索引c#8.0中的索引和范围为访问序列中的单个元素或范围提供了简洁的语法System.Index 类型可用于编制索引。 可从 int 创建一个从开头开始计数的索引,也可使用前缀 ^ 运算符 (C#) 创建一个从末尾开始计数的索引。^0表示序列的length,所以^1才是序列的最后一个数*,所以如果直接使用a[^0]效果等同于a[a.Length],会抛出...原创 2019-11-26 20:33:15 · 1986 阅读 · 0 评论 -
C#中的迭代器
.NET中的迭代器迭代器让我们自定义的数据类型实现迭代器附迭代器在C#中,foreach语句使得能够进行比for循环语句更直接和简单的对集合的迭代。.NET中迭代器是通过IEnumerable和IEnumerator接口来实现的(当然,这两个接口还有其对应的泛型版本:IEnumerable<T>和 IEnumerator<T>)。其源代码如下(部分代码省略)publi...原创 2019-08-14 21:53:33 · 930 阅读 · 0 评论 -
c#中$的使用
C#6.0之后,可以使用$符号拼接字符串,效果等同string.Format()。 如下代码中,str1,str2输出效果等同。string address = "杭州";string str1 = string.Format("{0}\t{1}\t{2}", "Id", "Name",address);Console.WriteLine(str1);string str2 = $"{"Id原创 2017-08-18 12:45:48 · 3093 阅读 · 0 评论 -
.NET邮件处理库:MailKit
文章目录邮件发送邮件接收MailKit是一个跨平台的邮件客户端库邮件发送private static void SendingMessages(){ var message = new MimeMessage(); message.From.Add(new MailboxAddress(FromName, FromAddress)); message.To.Add(...原创 2020-03-19 22:20:20 · 1362 阅读 · 0 评论 -
对象间映射框架AutoMapper了解一下
AutoMapper我们为什么要在对象之间做映射AutoMapper了解一下开始使用,先来一个简单的示例Flattening(扁平化)Reverse Mapping and UnflatteningProjection(投影)Configuration Validation(配置验证)附录我们为什么要在对象之间做映射对象映射可能发生在应用程序的许多地方,但主要发生在层之间的边界,比如UI层和...原创 2019-04-11 14:45:52 · 1062 阅读 · 0 评论 -
winform中动态生成控件
最近做winform程序,算是第一次做winform项目吧,记录一下。本文介绍了如何在一个winform程序中动态创建控件,以下的代码片段演示了在一个pannel容器中动态生成button的功能。详细代码见Github代码片段private void GenerateButton(){ panelButton.Controls.Clear(); var btn...原创 2018-08-23 19:31:40 · 5902 阅读 · 0 评论 -
异步编程之async,await
简介C# 5引入异步编程,可以在.NET Framework 4.5及更高版本或者.NET Core中进行异步编程。关于异步编程的主要使用场景,参见使用 Async 和 Await 的异步编程 (C#)。示例static void Main(string[] args){ MainAsync().GetAwaiter().GetResult(); //模拟异步ma...原创 2018-03-28 21:57:26 · 596 阅读 · 0 评论 -
异步编程之Task
概念Task是一个管理并行工作单元的轻量对象,相当于ThreadPool。处于命名空间System.Threading.Tasks下。使用创建和执行任务有两种方式创建,一种是调用Task.Run(),另一种是使用Task.Factory.StartNew()。 如下示例: Task t1 = Task.Run(() => { C...原创 2018-03-18 00:20:54 · 686 阅读 · 0 评论 -
一步一步教你使用CodeFisrt
第一步,添加EF引用首先在项目中安装Entity Framework的NuGet包 Install-Package EntityFramework图示:第二步,添加实体类 以下实体代码中 [Table("")] 有点多余,英文生成的数据库中会自动为表名加上 s 后缀User实体类:[Table("Users")]public class User{ public Guid I原创 2017-10-12 15:21:06 · 48822 阅读 · 0 评论 -
Entity Framework
1.介绍ADO.NET EntityFramework是一个对象-关系的映射架构,是以ADO.NET为基础的一个ORM框架。其有以下几种编程模型:Code First、Database First、Model First。 本节内容使用Database First,介绍一些基本改变和基本的CRUD操作。2. Entity Framework映射说明:以下内容中代码基于图1-12.1 逻辑层——定义原创 2017-07-20 12:53:19 · 1993 阅读 · 0 评论 -
.NET Core 3.0中的Json API : System.Text.Json
.NET Core 3.0 中的Json API : System.Text.JsonSystem.Text.Json 命名空间提供高性能、低分配以及符合标准的功能来处理 JavaScript 对象表示法 (JSON),其中包括将对象序列化为 JSON 文本以及将 JSON 文本反序列化为对象(内置 UTF-8 支持)。 它还提供类型以用于读取和写入编码为 UTF-8 的 JSON 文本,以及...原创 2019-11-20 21:54:17 · 1767 阅读 · 0 评论 -
.NET微服务从0到1:服务容错(Polly)
文章目录重试参考Polly是 .NET 平台下的一个弹性和瞬态故障处理库,它允许开发人员以流畅和线程安全的方式表达策略,如重试、熔断器、超时、舱壁隔离和回退重试参考ASP VNext 开源服务容错处理库Polly使用文档...原创 2020-03-20 22:36:54 · 1441 阅读 · 0 评论 -
.NET Core之单元测试(四):Fluent Assertions的使用
文章目录什么是Fluent Assertions待测试API测试用例什么是Fluent AssertionsFluent Assertions 是 .NET 平台下的一组扩展方法,用于单元测试中的断言。它使你的单元测试中的断言看起来更自然流畅。断言风格如下:string actual = "ABCDEFGHI";actual.Should().StartWith("AB").And.End...原创 2020-02-24 20:15:27 · 2250 阅读 · 0 评论 -
.NET Core之单元测试(二):使用内存数据库处理单元测试中的数据库依赖
文章目录定义一个待测试API测试用例为减少篇幅,隐藏了SampleEntity和SqliteDbContext定义一个待测试API如下,我们定义了一个名为Sample的API,其中有一个外部依赖项SqliteDbContext[Route("api/[controller]")][ApiController]public class SampleController : Control...原创 2020-02-23 20:28:23 · 2566 阅读 · 0 评论 -
.NET Core之单元测试(三):Mock框架Moq的使用
.NET平台下的Mock框架MoqMoq是.NET 平台下常用的一个Mock框架,用于处理单元测试中的外部依赖项。原创 2020-02-23 20:24:03 · 4198 阅读 · 0 评论 -
.NET Core之单元测试(一):入门
文章目录原创 2020-02-21 22:27:16 · 2624 阅读 · 0 评论 -
gRPC的四种调用方式
RPC的四种调用方式一元调用服务端流式调用客户端流式调用双向流式调用附在 上一篇 介绍了gRPC的使用场景及基本使用,本文将介绍gRPC的四种调用方式。一元调用普通RPC调用,客户端带一个请求对象进行调用,服务端返回一个响应对象。protosyntax = "proto3";option csharp_namespace = "GrpcDemoServices";pa...原创 2019-10-10 23:11:18 · 4805 阅读 · 0 评论 -
微服务之间通信的选择之gRPC
介绍gRPC是一种与语言无关的高性能远程过程调用 (RPC) 框架。gRPC 的主要优点是:现代高性能轻量级 RPC 框架。协定优先 API 开发,默认使用协议缓冲区,允许与语言无关的实现。可用于多种语言的工具,以生成强类型服务器和客户端。支持客户端、服务器和双向流式处理调用。使用 Protobuf 二进制序列化减少对网络的使用。这些优点使 gRPC 适用于:效率至关重要的...原创 2019-09-28 21:40:30 · 2408 阅读 · 0 评论 -
第一个.NetCore 2.0程序
1.关于环境Windows上直接安装SDK:https://www.microsoft.com/net/download/core Linux下:https://www.microsoft.com/net/core#linuxredhat 源码:https://github.com/dotnet/corefx2.第一个.Net Core程序说明:Visual Studio下编程与.NET Fra原创 2017-08-22 12:58:24 · 36505 阅读 · 0 评论 -
CentOS上使用nginx运行.net core web应用
CentOS上使用nginx运行.net core webapi安装.NET Core参考:https://www.microsoft.com/net/learn/get-started/linuxcentos按步骤执行以下命令:sudo rpm --import https://packages.microsoft.com/keys/microsoft.ascsudo sh -c 'echo -e原创 2017-11-25 17:26:27 · 5063 阅读 · 1 评论 -
.NET Core 配置管理
.NET Core 配置管理命令行配置新建一个控制台程序:安装NuGet包:控制台程序代码:static void Main(string[] args){ var settings = new Dictionarystring, string> { { "name","zhangsan"}, { "age","20"}原创 2018-01-04 21:59:58 · 5864 阅读 · 0 评论