.NET Core OAuth IdentityServer4 Token
ASP.NET Identity 简介
身份认证 IdentityServer4
文档目录
.NET 文档
ASP.NET 文档
Identity基于Cookie的身份验证方式,实际上是对一个AuthenticationTicket对象序列化加密、反序列化解密的过程,而这个AuthenticationTicket就携带了所有用户的信息,在AuthenticationTicket的定义中可以看到两个重要的对象,其中AuthenticationProperties保存了身份验证的会话信息,如过期时间、是否允许刷新等。而另一个ClaimsIdentity属性就是以声明(Claim)的方式实现的用户信息。
授权服务器中生成的RefreshToken和AuthorizationCode默认存储在内存中,如果服务重启这些数据就失效了,那么就要实现IPersistedGrantStore接口对数据存储,将数据写入到数据库或者NoSql(Redis)中。
1、基础表
application_user(表)
identity_role(表)
identity_user_claim(表)
identity_user_role(表)
identity_user_login(表)
2、NuGet 安装
Microsoft.AspNet.Identity.EntityFramework
Microsoft.AspNet.Identity.OWIN
Microsoft.Owin.Host.SystemWeb
3、基础类
//用户管理基类,内建了诸如角色、用户名、密码、Emai等基础的属性
IdentityUser;
//用户管理器基类
UserManager<T>;
//用户存储器接口
IUserStore<T>;
//用户存储器
UserStore<T>;
//类似于我们熟悉的HttpContext,表示OWIN环境中的Http请求上下文对象
IOwinContext;
//提供应用程序所需中间件的设置,所有的中间件应通过接口提供的CreatePerOwinContext方法进行注册
IAppBuilder;
//密码规则类
PasswordValidator
IdentityUser 【Microsoft.AspNet.Identity.EntityFramework】
IdentityDbContext 【Microsoft.AspNet.Identity.EntityFramework】
IdentityMessage 【Microsoft.AspNet.Identity】
UserManager 【Microsoft.AspNet.Identity】
ClaimsIdentity 【System.Security.Claims】
IIdentity 【System.Security.Principal】
4、创建 User 类,命名为AppUser
继承自Microsoft.AspNet.Identity.EntityFramework 名称空间下IdentityUser,IdentityUser 提供了基本用户信息,如Email、PasswordHash、UserName、PhoneNumber、Roles等,也可以在其派生类中添加信息,代码如下:
using Microsoft.AspNet.Identity.EntityFramework;
public class AppUser:IdentityUser
{
}
IAuthorizationFilter:实现此接口执行异步授权逻辑。例如,写异步方法)。
自定义授权筛选器
AuthorizeAttribute:基于用户和角色进行授权。
AuthorizationFilterAttribute:不基于用户和角色的同步授权。
IAuthorizationFilter:实现此接口执行异步授权逻辑。步方法)。
自定义授权筛选器
AuthorizeAttribute:基于用户和角色进行授权。
AuthorizationFilterAttribute:不基于用户和角色的同步授权。
IAuthorizationFilter:实现此接口执行异步授权逻辑。步方法)。
自定义授权筛选器
AuthorizeAttribute:基于用户和角色进行授权。
AuthorizationFilterAttribute:不基于用户和角色的同步授权。
IAuthorizationFilter:实现此接口执行异步授权逻辑。步方法)。