Identity第二章

运用Asp.Net Identity

问题
解决方案
清单号

准备用户认证的应用程序
运用Authorize注解属性来限制对动作方法的访问,并定义一个对用户重定向的控制器,以便让用户提供凭据
1–4

问题
解决方案
清单号

准备用户认证的应用程序
运用Authorize注解属性来限制对动作方法的访问,并定义一个对用户重定向的控制器,以便让用户提供凭据
1–4

认证用户
使用由用户管理器类定义的FindAsync方法检查用户名和口令,并使用CreateIdentityMethod创建一个IIdentity接口的实现。通过调用由认证管理器类定义的SignIn方法,设置后继请求的认证Cookie。
5

准备基于角色授权的应用程序
创建一个角色管理器类,将其注册为OWIN启动类中的实例化
6–8

创建和删除角色
使用由角色管理器类定义的CreateAsync和DeleteAsync方法。
9–12

管理角色成员
使用由用户管理器类定义的AddToRoleAsync和RemoveFromRoleAsync方法
13–15

使用角色进行授权
设置Authorize注解属性的Roles属性
16–19

将初始化内容种植数据库
使用数据库上下文的初始化类

认证用户
使用由用户管理器类定义的FindAsync方法检查用户名和口令,并使用CreateIdentityMethod创建一个IIdentity接口的实现。通过调用由认证管理器类定义的SignIn方法,设置后继请求的认证Cookie。
5

准备基于角色授权的应用程序
创建一个角色管理器类,将其注册为OWIN启动类中的实例化
6–8

创建和删除角色
使用由角色管理器类定义的CreateAsync和DeleteAsync方法。
9–12

管理角色成员
使用由用户管理器类定义的AddToRoleAsync和RemoveFromRoleAsync方法
13–15

使用角色进行授权
设置Authorize注解属性的Roles属性
16–19

将初始化内容种植数据库
使用数据库上下文的初始化类

2.2.1 理解认证/授权过程

认证就是检查当前访问的用户是不是网站的用户。(通过检查cookie)

认证的过程是通过HttpContext对象提供的关于用户的信息。此对象下有User属性返回的是IPrincipal接口的实现。 

IPrincipal接口如下:

IIdentity如下:

Authorize模块检查IsAuthenticated属性的值,如果为true,认证通过,为false则重定向到登录。

2.2.2 实现认证的准备

AllowAnonymous表示当前请求不限制Authorize。

ValidateAntiForgeryToken防止跨网站攻击。

用户界面:

2.2.3 添加用户认证

通过用户名密码查找用户,返回用户实例。

创建了一个ClaimsIdentity对象,这个对象继承自IIdentity。

再通过一个IAuthenticationManager对象,执行SignOut,使当前cookie失效;再执行SignIn登录。

2.2 测试登录

自己测吧

2.3 角色授权

问题
答案

什么是授权?
授权是将控制器和动作的准许访问限制到特定用户,通常是基于角色的成员

为何要关心它?
没有角色,你只能在已认证用户和未认证用户之间加以区分。大多数应用程序均有不同类型的用户,例如客户和管理员等

如何在MVC框架中使用它?
角色通过Authorize注解属性可用于强制授权,Authorize可用于控制器和动作方法

如何对角色进行增删改查,在此不再赘述,和对人员的增删改查一样。用到了RoleManager。

参考博客:

http://www.cnblogs.com/r01cn/p/5179506.html

http://www.cnblogs.com/OceanEyes/category/696137.html

http://www.cnblogs.com/jesse2013/p/aspnet-identity-claims-based-authentication-and-owin.html

原文地址:https://www.cnblogs.com/zh1990/p/5630554.html