Go to my github
上一页 1 ··· 3 4 5 6 7 8 9 10 下一页
摘要: 第 3 章 ASP.NET Core 核心特性 3.3 依赖注入 通常情况下,应用程序由多个组件构成,而组件与组件之间往往存在依赖关系 当我们需要获取数据时,通常的做法是实例化依赖的类,然后调用类里面的方法,但是这种依赖方式会增加调用方和被调用方之间的耦合,也会增加应用程序维护成本及灵活性,同时增加 阅读全文
posted @ 2020-06-25 02:16 郑子铭 阅读(342) 评论(0) 推荐(0) 编辑
摘要: 第 3 章 ASP.NET Core 核心特性 3.1 启动与宿主 ASP.NET Core 应用程序启动时,它首先会配置并运行其宿主,宿主主要用来启动、初始化应用程序,并管理其生命周期 ASP.NET Core 应用程序本质上就是控制台应用程序 public class Program { pub 阅读全文
posted @ 2020-06-24 01:26 郑子铭 阅读(468) 评论(0) 推荐(1) 编辑
摘要: 第 2 章 .NET Core 和 ASP.NET Core 2.1 .NET Core 简介 .NET Core 是一个通用的开发平台,最重要的特点是跨平台,同时也是一个开源平台 .NET Core 包含以下几部分内容: CoreCLR:它是 .NET Core 的运行时,包含垃圾回收器、JIT 阅读全文
posted @ 2020-06-23 00:34 郑子铭 阅读(573) 评论(0) 推荐(0) 编辑
摘要: 第 1 章 REST 简介 1.1 API 与 REST API 是一个系统向外暴露或公开的一套接口,通过这些接口,外部应用程序能够访问该系统 REST 是一种基于资源的架构风格,任何能够命名的对象都是一个资源,如 user,一个资源具有一个统一的资源标识符(URI),如 user/1234,通过 阅读全文
posted @ 2020-06-21 23:51 郑子铭 阅读(908) 评论(0) 推荐(1) 编辑
摘要: 任务24:集成ASP.NETCore Identity 之前在 Index 页面写了一个 strong 标签,需要加个判断再显示,不然为空没有错误的时候也会显示 @if (!ViewContext.ModelState.IsValid) { <strong>Error""</strong> <div 阅读全文
posted @ 2020-06-15 02:50 郑子铭 阅读(599) 评论(0) 推荐(0) 编辑
摘要: 任务23:Consent 代码重构 新建一个 Sercices 文件夹,在文件夹下新建一个 ConsentService,专门用于处理 Consent 的逻辑,我们会把 controller 中不是 action 的方法移到 service 中 先将 ConsentController 私有变量和构 阅读全文
posted @ 2020-06-03 01:09 郑子铭 阅读(335) 评论(0) 推荐(0) 编辑
摘要: 任务22:Consent 确认逻辑实现 接下来,我们会在上一节的基础上添加两个按钮,同意和不同意,点击之后会把请求 post 到 ConsentController 处理,如果同意会通过 return url 跳转到客户端,如果不同意就会取消,同时客户端也会进行处理 首先完善 ViewModel,我 阅读全文
posted @ 2020-05-29 00:31 郑子铭 阅读(307) 评论(0) 推荐(0) 编辑
摘要: 任务21:运行Consent Page 修改 Config.cs 中的 RequireConsent 为 true,这样登录的时候就会跳转到 Consent 页面 修改 ConsentController 的 Index 为异步 构造函数改为 public Index.cshtml 添加用户信息和 阅读全文
posted @ 2020-05-15 01:13 郑子铭 阅读(261) 评论(0) 推荐(0) 编辑
摘要: 任务20:Consent Controller Get请求逻辑实现 接着上一节的思路,实现一下 ConsentController 根据流程图在构造函数注入 IClientStore,IResourceStore,IIdentityServerInteractionService 构造函数 Inde 阅读全文
posted @ 2020-05-14 00:58 郑子铭 阅读(260) 评论(0) 推荐(0) 编辑
摘要: 任务19:Consent视图制作 按照上一节 Consent 的思路 在 mvcCookieAuthSample 项目的 Controllers 文件夹下新建一个 ConsentController 在 Views 文件夹下新建一个 Consent 文件夹,然后在该文件夹下新建一个 Index 视图 阅读全文
posted @ 2020-05-13 01:12 郑子铭 阅读(345) 评论(0) 推荐(1) 编辑
摘要: 任务17:Identity Server 4回顾 上一节我们中间留了一部分,登录之后的 RequireConsent,就是用户授权这一步没有做,直接跳过,这种情况可以理解为我们自己比较信任的客户端,这个应用是我们自己的,自己的用户不需要授权,如果是第三方的话,就需要这一步 我们在简书上通过微博登录的 阅读全文
posted @ 2020-05-12 00:34 郑子铭 阅读(356) 评论(1) 推荐(1) 编辑
摘要: 任务16:oauth2 + oidc 实现 client部分 实现 client 之前启动一下上一节的 server,启动之前需要清除一些代码 注释 Program 的 MigrateDbContext RegisterViewModel 启动程序,使用 Config 中的 TestUser 登录 阅读全文
posted @ 2020-05-11 00:46 郑子铭 阅读(553) 评论(1) 推荐(1) 编辑
摘要: 任务15:oauth2 + oidc 实现 server部分 基于之前快速入门的项目(MvcCookieAuthSample): https://www.cnblogs.com/MingsonZheng/p/11614686.html https://www.cnblogs.com/MingsonZ 阅读全文
posted @ 2020-05-10 02:14 郑子铭 阅读(510) 评论(0) 推荐(0) 编辑
摘要: 任务14:oauth2与open id connect 对比 以微博开放平台为例(微博登录接入 授权机制): https://open.weibo.com/wiki/%E6%8E%88%E6%9D%83%E6%9C%BA%E5%88%B6 可以看到微博登录接入使用的是 OAuth2.0 OAuth2 阅读全文
posted @ 2020-05-09 03:47 郑子铭 阅读(470) 评论(0) 推荐(0) 编辑
摘要: 最近公司产品上线,通宵加班了一个月,一直没有更新,今天开始恢复,每日一更,冲冲冲 任务13:详解oauth2授权码流程 我们即将开发的产品有一个用户 API,一个项目服务 API,每个服务都需要认证授权,所以我们需要一个登录系统,用户(Android,IOS)通过登录系统获取 token,再使用 t 阅读全文
posted @ 2020-05-08 02:08 郑子铭 阅读(825) 评论(0) 推荐(0) 编辑
摘要: 任务12:oauth密码模式identity server4实现 密码模式比客户端模式更加严格,需要第三方输入用户名和密码之后才可以访问 API 在 IdentityServerCenter 的 Config 中引入测试命名空间 并添加一个获取 TestUser 的方法 正式环境的话从数据库读取 c 阅读全文
posted @ 2020-04-10 01:01 郑子铭 阅读(602) 评论(2) 推荐(1) 编辑
摘要: 任务10:第三方ClientCredential模式调用 创建一个控制台程序 添加 Nuget 包:IdentityModel 添加之后还原 Client 先启动 IdentityServerCenter,ClientCredentialApi 再启动 ThirdPartyDemo,输出如下: 参考 阅读全文
posted @ 2020-04-08 00:35 郑子铭 阅读(370) 评论(0) 推荐(0) 编辑
摘要: 任务9:客户端集成IdentityServer 新建 API 项目 控制器添加验证 添加验证之后这个 API 就无法访问,需要添加认证授权模式 因为这是客户端,所以只需要添加 IdentityServer4.AccessTokenValidation 添加 Nuget 包之后 注册服务 使用服务 在 阅读全文
posted @ 2020-04-05 23:59 郑子铭 阅读(411) 评论(0) 推荐(0) 编辑
摘要: 任务4:第一章计划与目录 敏捷产品开发流程 原型预览与业务介绍 整体架构设计 API 接口设计 / swagger Identity Server 4 搭建登录 账号 API 实现 配置中心 任务5:业务介绍 项目背景:基于人脉关系的金融行业项目 用户: 1、账号: 基本资料维护 登录 2、管理自己 阅读全文
posted @ 2020-04-04 02:27 郑子铭 阅读(565) 评论(0) 推荐(0) 编辑
摘要: 任务1:课程介绍 课程目标: 1、进一步理解 ASP.NET Core 授权认证框架、MVC 管道 2、掌握 Oauth2,结合 Identity Sercer4 实现 OAuth2 和 OpenID Connect Server 3、掌握 ASP.NET Core 与 Redis, MongoDB 阅读全文
posted @ 2020-04-02 00:50 郑子铭 阅读(651) 评论(0) 推荐(0) 编辑
摘要: 35 | MediatR:让领域事件处理更加优雅 核心对象 IMediator INotification INotificationHandler 这两个与之前的 Request 的行为是不一样的,接下来看一下代码 internal class MyEvent : INotification { 阅读全文
posted @ 2020-04-01 00:07 郑子铭 阅读(2821) 评论(5) 推荐(1) 编辑
摘要: 34 | MediatR:轻松实现命令查询职责分离模式(CQRS) 实际上我们在定义我的查询的时候,也可以这样定义,例如我们定义一个 MyOrderQuery,把订单的所有名称都输出出去 namespace GeekTime.API.Application.Queries { public clas 阅读全文
posted @ 2020-03-30 00:15 郑子铭 阅读(649) 评论(0) 推荐(0) 编辑
摘要: 34 | MediatR:轻松实现命令查询职责分离模式(CQRS) 核心对象 IMeditator IRequese、IRequest IRequestHandler<in TRequest, TResponse> 首先我们安装了 MediatR 的 8.0 的组件包,还安装了依赖注入框架的扩展包, 阅读全文
posted @ 2020-03-29 00:04 郑子铭 阅读(890) 评论(3) 推荐(0) 编辑
摘要: 33 | 集成事件:使用RabbitMQ来实现EventBus 这一节我们来讲解如何通过 CAP 组件和 RabbitMQ 来实现 EventBus 要实现 EventBus,我们这里借助了 RabbitMQ,它的整个安装和使用的体验是非常人性化的,如果是在 Windows 下开发的话,它可以有 W 阅读全文
posted @ 2020-03-27 00:31 郑子铭 阅读(995) 评论(0) 推荐(0) 编辑
摘要: 32 | 集成事件:解决跨微服务的最终一致性 首先看一下集成事件的工作原理 它的目的时为了实现系统的集成,它主要是用于系统里面多个微服务之间相互传递事件 集成事件的实现方式有两种,一种是图上显示的发布订阅的方式,通过 EventBus,还有一种方式是通过观察者模式,由观察者将事件发送给关注事件的人 阅读全文
posted @ 2020-03-26 00:17 郑子铭 阅读(848) 评论(1) 推荐(0) 编辑
摘要: 31 | APIController:定义API的最佳实践 首先看一个传统意义上三层架构定义的 Controller [HttpPost] public Task<long> CreateOrder([FromBody]CreateOrderVeiwModel viewModel) { var mo 阅读全文
posted @ 2020-03-25 00:24 郑子铭 阅读(1250) 评论(0) 推荐(0) 编辑
摘要: 30 | 领域事件:提升业务内聚,实现模块解耦 我们在领域的抽象层定义了领域事件和领域事件处理的接口 IDomainEvent namespace GeekTime.Domain { public interface IDomainEvent : INotification { } } 这是一个空接 阅读全文
posted @ 2020-03-24 00:25 郑子铭 阅读(927) 评论(0) 推荐(0) 编辑
摘要: 在多线程环境中,多个线程可能会同时访问同一个资源,为了避免访问发生冲突,可以根据访问的复杂程度采取不同的措施 原子操作适用于简单的单个操作,无锁算法适用于相对简单的一连串操作,而线程锁适用于复杂的一连串操作 原子操作 修改状态要么成功且状态改变,要么失败且状态不变,并且外部只能观察到修改前或者修改后 阅读全文
posted @ 2020-03-22 17:45 郑子铭 阅读(8170) 评论(12) 推荐(37) 编辑
摘要: 29 | 定义仓储:使用EF Core实现仓储层 首先定义仓储层的接口,以及仓储层实现的基类,抽象类 仓储层的接口 namespace GeekTime.Infrastructure.Core { /// <summary> /// 包含普通实体的仓储 /// 约束 TEntity 必须是继承 En 阅读全文
posted @ 2020-03-22 00:18 郑子铭 阅读(2500) 评论(0) 推荐(5) 编辑
摘要: 28 | 工作单元模式(UnitOfWork):管理好你的事务 工作单元模式有如下几个特性: 1、使用同一上下文 2、跟踪实体的状态 3、保障事务一致性 我们对实体的操作,最终的状态都是应该如实保存到我们的存储中,进行持久化 接下来看一下代码 为了实现工作单元模式,这里定义了一个工作单元的接口 pu 阅读全文
posted @ 2020-03-21 00:01 郑子铭 阅读(1489) 评论(2) 推荐(2) 编辑
上一页 1 ··· 3 4 5 6 7 8 9 10 下一页