ASP.NET Identity

ASP.NET Identity 简介
身份认证 IdentityServer4

Identity基于Cookie的身份验证方式,实际上是对一个AuthenticationTicket对象序列化加密、反序列化解密的过程,而这个AuthenticationTicket就携带了所有用户的信息,在AuthenticationTicket的定义中可以看到两个重要的对象,其中AuthenticationProperties保存了身份验证的会话信息,如过期时间、是否允许刷新等。而另一个ClaimsIdentity属性就是以声明(Claim)的方式实现的用户信息。

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;

//用户存储器接口
IUserStore;

//用户存储器
UserStore;

//类似于我们熟悉的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:实现此接口执行异步授权逻辑。步方法)。

你可能感兴趣的:(.Net技术)