一.概述 OAuth 2.0资源(web api)所有者密码授权,允许客户端(Client项目)向令牌服务(IdentityServer项目)发送用户名和密码,并获取代表该用户的访问令牌.在官方文档中讲到:规范通常建议不要使用“资源所有者密码授权”.当用户进行身份验证并请求访问令牌时,使用一个交互式OpenID Connect流程通常要好得多(下篇再了解). 本篇介绍“资源所有者密码授权”是因为这种授权允许我们快速启动IdentityServer.开源地址:Github 下面示例与官方示例有点区…
一.概述 OAuth 2.资源所有者密码授权允许客户端(Client项目)向令牌服务(IdentityServer项目)发送用户名和密码,并获取代表该用户的访问令牌.本篇将IS4结合asp.net core Identity实现密码保护API的简单示例.关于asp.net core Identity的了解实现,请查看之前章节介绍或官方文档. 开源地址:Github,这里演示与官方示例有点区别,是结合了asp.net core Identity. 本篇示例,还是三个项目,与上篇三个项目差不多.分别…
0. 前言 在之前的文章中简单介绍了一下asp.net core中的Identity,这篇文章将继续针对Identity进行进一步的展开. 1. 给Identity添加额外的信息 在<[asp.net core 系列]13 Identity 身份验证入门>一文中,我们大概了解了如何使用Identity,以及如何保存一些信息以便后续的验证.这里我们将深入讨论一下如何给Identity添加更多的信息. 我们知道在给Identity添加数据的时候,需要添加一个Claim对象.我们先回顾一下Claim…
一. 概述 本篇开始进入IS4实战学习,从第一个示例开始,该示例是 “使用客户端凭据保护API”,这是使用IdentityServer保护api的最基本场景.该示例涉及到三个项目包括:IdentityServer项目.API项目.Client项目,都有自己的宿主,为了方便开发,放在了一个解决方案下(Quickstart.sln),三个项目的分工如下: (1) IdentityServer项目是包含基本的IdentityServer设置的ASP.NET Core应用程序,是令牌端点. (2) AP…
一. 概述 本篇探讨使用"基于浏览器的JavaScript客户端应用程序".与上篇实现功能一样,只不过这篇使用JavaScript作为客户端程序,而非core mvc的后台代码HttpClient实现. 功能一样:用户首先要登录IdentityServer站点,再使用IdentityServer发出的访问令牌调用We​​b API,可以注销IdentityServer站点下登录的用户,清除cookie中的令牌信息.所有这些都将来自浏览器中运行的JavaScript. 此示例还是三个项目…
一.概述 在上篇中,探讨了交互式用户身份验证,使用的是OIDC协议. 在之前篇中对API访问使用的是OAuth2.0协议.这篇把这两个部分放在一起,OpenID Connect和OAuth 2.0组合的优点在于:可以使用单个协议和令牌服务,进行单次交换来实现这两者. 上篇中使用了OpenID Connect隐式流程.在隐式流程中,所有令牌都通过浏览器传输,这对于身份令牌来说是完全正确的.现在我们还想要一个访问令牌. 访问令牌比身份令牌更敏感,如果不需要,我们不希望将它们暴露给“外部”世界.Ope…
一.概述 在前二篇中讲到了客户端授权的二种方式: GrantTypes.ClientCredentials凭据授权和GrantTypes.ResourceOwnerPassword密码授权,都是OAuth2.0协议.本篇使用OpenID Connect添加用户认证,客户端授权是GrantTypes.Implicit隐式流授权,是OCID协议. 本篇示例中只有二个项目:一个IdentityServer的mvc应用程序,一个客户端mvc应用程序(用户client端). 下面介绍身份认证交互流程: (…
随笔分类 - asp.net core系列篇 asp.net core系列 68 Filter管道过滤器 摘要: 一.概述 本篇详细了解一下asp.net core filters,filter叫"筛选器"也叫"过滤器",是请求处理管道中的特定阶段之前或之后运行代码.filter用于处理横切关注点. 横切关注点的示例包括:错误处理.缓存.配置.授权和日志记录. filter可以避免重复代码,通过Attribut阅读全文 posted @ 2019-07-16 09:…
一.管理数据库架构概述 EF Core 提供两种主要方法来保持 EF Core 模型和数据库架构同步.一是以 EF Core 模型为基准,二是以数据库为基准. (1)如果希望以 EF Core 模型为准,请使用迁移. 对 EF Core 模型进行更改时,此方法会以增量方式将相应架构更改应用到数据库,以使数据库保持与 EF Core 模型兼容.  (2)如果希望以数据库架构为准,请使用反向工程. 使用此方法,可通过将数据库架构反向工程到 EF Core 模型来生成相应的 DbContext 和实体…
WPF中的常用布局   一 写在开头1.1 写在开头微软是一家伟大的公司.评价一门技术的好坏得看具体的需求,没有哪门技术是面面俱到地好,应该抛弃对微软和微软的技术的偏见. 1.2 本文内容本文主要内容为WPF中的常用布局,大部分内容转载至https://blog.csdn.net/woshisunjiale/article/details/54136323,代码片段可能有所不同. 二 WPF中的常用布局因为项目需要,所以得学习WPF开发.WPF使软件界面和逻辑相分离,手写xaml进行程序UI的开…