概述最近一直在学习研究认证授权这一块,从AspNetCore的Security解决方案,到Identity,再到OAuth2.0、OpenIdConnect协议,然后IdentityServer4,这一块的东西十分多而且复杂,可以算是DotNet里最难啃的骨头之一了。计划做个认证授权的系列,藉由分析源码来学习、记录和加深对这一块的理解。如图是AspNetCore.Security解决方案的项目结构
转载 2021-05-17 23:19:14
107阅读
2评论
oidc简介oidc是基于oauth2.0的上层协议。OAuth有点像卖电影票的,只关心用户能不能进电影院,不关心用户是谁。而oidc则像身份证,扫描就可以上飞机,一次扫描,机场不仅能知道你是否能上飞机,还可以知道你的身份信息。oidc兼容OAuth2.0, 可以实现跨顶级域的SSO(单点登录、登出),下个系列要学习的IdentityServer4就是对oidc协议族的一个具体实现框架。更多理论知
转载 2021-05-18 11:38:35
567阅读
2评论
OAuth简介现在随便一个网站,不用注册,只用微信扫一扫,然后就可以自动登录,然后第三方网站右上角还出现了你的微信头像和昵称,怎么做到的?sequenceDiagram    用户->>x站点: 请求微信登录    x站点->>微信: 请求 oauth token    微信->>用户: x站点请求基本资料权限,是否同意?    用户->>微
转载 2020-03-25 01:08:00
208阅读
2评论
JwtBear简介首先回想一下Cookie认证,Cookie认证在用户登录成功之后将用户信息加密后写入浏览器Cookie中,服务端通过解析Cookie内容来验证用户登录状态。这样做有几个缺陷:Cookie加密方式是微软自己定义的,并非国际标准,其他语言无法识别。依赖Cookie,在跨域场景下,存在诸多限制。CORS除非设置白名单否则是不允许带Cookie的;大部分浏览器对跨域设置Cookie有严格
转载 2021-05-08 22:14:39
292阅读
2评论
简介Secutiry的认证目录还有这些项目,基本都是具体的OAuth2.0服务商或者其他用的比较少的认证架构,简单看一下,了解一下。Microsoft.AspNetCore.Authentication.CertificateMicrosoft.AspNetCore.Authentication.FacebookMicrosoft.AspNetCore.Authentication.GoogleM
转载 2021-05-18 11:11:17
66阅读
2评论
依赖注入AuthenticationBuilder AddCookie(this AuthenticationBuilder builder); AuthenticationBuilder AddCookie(this AuthenticationBuilder builder, string authenticationScheme); AuthenticationBuilder AddCo
转载 2020-03-20 00:46:00
101阅读
2评论
简介开篇提到过,认证主要解决的是who are you,授权解决的是 are you allowed的问题。各种认证架构可以帮我们知道用户身份(claims),oauth等架构的scope字段能够控制api服务级别的访问权限,但是更加细化和多变的功能授权不是它们的处理范围。微软的Authorization项目提供了基于策略的灵活的授权框架。推荐看下面博客了解,我主要学习和梳理源码。https://
转载 2021-05-18 11:08:19
279阅读
2评论
依赖注入框架提供了三个依赖注入重载方法。//注入认证服务 services.AddAuthentication(); //注入认证服务并制定默认架构名 services.AddAuthentication("Cookies"); //注入认证服务并设置配置项 services.AddAuthentication(config =>  { });看看注入代码public static Au
转载 2020-03-18 22:58:00
107阅读
2评论
今天看AspNetCore源代码发现日志模块的设计模式(提供者模式)。 设计模式的好处是,我们可以容易扩展它达到我们要求,除了要知道如何扩展它,还应该在其他地方应用它,AspNetCore源代码发现日志模块的设计模式(提供者模式),特此记录学习设计模式的好处是,我们可以容易扩展它达到我们要求,除了要知道如何扩展它,还应该在其他地方应用它 类图 & 分析角色分析日志工厂 ( LoggerFa
转载 2021-05-18 22:31:26
354阅读
2评论
# ASP.NET Core and Axios: A Comprehensive Guide In modern web development, it's common to use API calls to interact with servers and fetch data dynamically. ASP.NET Core is a popular framework for bu
原创 2024-02-26 05:33:44
18阅读
需求前几天,马老板给小明和小红一个“待办事项”网站,小明负责后端,小红负责前端,并要求网站可以同时在 Windows、和 Linux 上运行。小明整理了一下“待办事项”的功能清单:获取所有待办事项按 ID 获取项添加新项更新现有项删除项创建 Web 项目从“文件”菜单中选择“新建”>“项目” 。选择“ASP.NET Core Web 应用程序”模板,再单击“下一步” 。将项目命名为 App0
原创 精选 2023-06-05 16:38:44
285阅读
由于是基于.net-core平台,所以,我们最好是基于IDistributedCache接口来实现。ASP.NET-CORE下的官方redis客户端实现是基于StackExchange的。但是官方提供的IDistributeCache接口中的方法只是增删改查,我们可以继续拓展,增加订阅/发布,消息队列,当然这些方法必须是基于底层的StackExchange相对应的方法来做的。如果我们要实现自己的R
# 使用 Docker 部署 ASP.NET Core 应用程序 随着微服务架构和容器化应用的普及,Docker 已经成为开发、部署和管理现代应用程序的重要工具。本篇文章将介绍如何使用 Docker 来部署一个简单的 ASP.NET Core 应用程序,包括代码示例和相关工具的使用。 ## 1. 什么是 ASP.NET Core? ASP.NET Core 是一个高性能、跨平台的框架,用于构
原创 7月前
73阅读
# ASP.NET Core Dockerfile 乱码问题的解决方案 在构建和部署 ASP.NET Core 应用程序时,使用 Docker 是一种常见且有效的方法。然而,在某些情况下,编码问题可能会导致输出结果出现乱码,影响应用程序的正常运行。在这篇文章中,我们将探讨 ASP.NET Core 在 Docker 中可能遇到的乱码问题,并提供相应的解决方案和示例代码。 ## 乱码问题的原因
原创 9月前
42阅读
一、Autowired注解的原理的概览我们都知道一个Bean的大致生命周期有这几个阶段,实例化--> 属性填充 --> 初始化  --> 销毁回调 其中Autowired作用的时间就是在属性填充阶段,而且是通过AutowiredAnnotation BeanPostProcessor类进行处理的。注入的整体流程如下: 二、一步步分析Autowired
转载 2024-01-11 21:42:05
138阅读
文章目录一、ChannelBase类定义二、Channel类基本定义三、Channel参数3.1 ChannelOptions定义3.2 根据ChannelOptions为Channel设置参数四、Channel初始化五、核心调用函数CallMethod六、Weight()和CheckHealth() 以前写过访问下游的一些源码解析,但更多的是从整个处理流程上过了一遍,能够快速地熟悉处理过程,
转载 2024-01-08 17:44:12
91阅读
目录一、事务的传播属性一、传播属性的概述二、Propagation.REQUIRED属性            ①、实例代码:            ②、Debug调试            ③、正常情况伪代码流程&nb
在上面一篇分析ThreadExecutedPool的文章中我们看到线程池实现源码中大量使用了ReentrantLock锁,那么ReentrantLock锁的优势是什么?它又是怎么实现的呢? ReentrantLock又名可重入锁,为什么称之为可重入锁呢?简单来说因为它允许一个线程多次取获得该锁,不过多次获取该锁之后,也需要执行同样次数的释放锁操作,否则该锁将被当前线程一直持有,导致其它线程无法获取
转载 2024-04-29 22:55:54
28阅读
@Transactional 源码解析1.springboot 下@Transactional使用方式2.spring是怎么处理事务的2.1 创建事务2.2 调用业务方法2.3 清除事务2.4 提交或者回滚事务 1.springboot 下@Transactional使用方式在springboot框架下,事务管理只要在实现类方法上增加@Transactional这个注解就可以了。@Transac
tarsframework 的源码大体分3部分1、framework  框架的实现,里面内容是框架各个基础服务具体做的事;2、servant 实现的内容是 单个服务基础lib的封装,包括网络IO,协程,逻辑管理等封装;3、Util里一些高性能 数据结构的实现。 framework  和 servant 是这个框架,实现高可用设计,Util则是腾讯大神撸码功底
转载 2024-03-21 22:27:43
62阅读
  • 1
  • 2
  • 3
  • 4
  • 5