运用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