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
Identity-第二章的更多相关文章
- 《Entity Framework 6 Recipes》翻译系列 (3) -----第二章 实体数据建模基础之创建一个简单的模型
第二章 实体数据建模基础 很有可能,你才开始探索实体框架,你可能会问“我们怎么开始?”,如果你真是这样的话,那么本章就是一个很好的开始.如果不是,你已经建模,并在实体分裂和继承方面感觉良好,那么你可以 ...
- 编写高质量代码:改善Java程序的151个建议(第二章:基本类型)
编写高质量代码:改善Java程序的151个建议(第二章:基本类型) 目录 建议21:用偶判断,不用奇判断 建议22:用整数类型处理货币 建议23:不要让类型默默转换 建议24:边界还是边界 建议25: ...
- 《图解HTTP》阅读笔记--第二章 简单的HTTP协议--第三章 HTTP报文信息
第二章.简单的HTTP协议HTTP协议:HTTP协议用于客户端(请求资源的一端)和服务器端(响应回复提供资源的一端)的通信,是一种无状态协议HTTP1.1默认TCP持久连接,管线化发送(并行发送多个 ...
- Python 3标准库课件第二章
整理第一章我又觉得烦,我就看第二章了,灰头土脸的,第二章一.如列表(list).元组(tuple).字典(dict).集合(set)二.2.1 enum:枚举类型 enum模块定义了一个提供迭代和比较 ...
- Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第二章:矩阵代数
原文:Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第二章:矩阵代数 学习目标: 理解矩阵和与它相关的运算: 理解矩阵的乘 ...
- ASP.NET MVC with Entity Framework and CSS一书翻译系列文章之第二章:利用模型类创建视图、控制器和数据库
在这一章中,我们将直接进入项目,并且为产品和分类添加一些基本的模型类.我们将在Entity Framework的代码优先模式下,利用这些模型类创建一个数据库.我们还将学习如何在代码中创建数据库上下文类 ...
- 《Django By Example》第二章 中文 翻译 (个人学习,渣翻)
书籍出处:https://www.packtpub.com/web-development/django-example 原作者:Antonio Melé (译者注:翻译完第一章后,发现翻译第二章的速 ...
- Jenkins入门系列之——02第二章 Jenkins安装与配置
2014-12-08:已不再担任SCM和CI的职位,Jenkins的文章如无必要不会再维护. 写的我想吐血,累死了. 网页看着不爽的,自己去下载PDF.有问题请留言! Jenkins入门系列之——03 ...
- Python黑帽编程 2.0 第二章概述
Python黑帽编程 2.0 第二章概述 于 20世纪80年代末,Guido van Rossum发明了Python,初衷据说是为了打发圣诞节的无趣,1991年首次发布,是ABC语言的继承,同时也是一 ...
- Asp.Net MVC4 + Oracle + EasyUI 学习 第二章
Asp.Net MVC4 + Oracle + EasyUI 第二章 --使用Ajax提升网站性能 本文链接:http://www.cnblogs.com/likeli/p/4236723.html ...
随机推荐
- BZOJ 3956 Count 解题报告
好点对的个数是\(O(n)\)的,而且我们可以 \(O(n)\) 地求出所有好点对. 我们把这些点对以右端点为关键字从小到大排序,再弄个扫描线,每次把右端点在扫描线上的点对的左端点加入线段树,于是我们 ...
- 关联规则算法Apriori的学习与实现
转自关联规则算法Apriori的学习与实现 首先我们来看,什么是规则?规则形如"如果-那么-(If-Then-)",前者为条件,后者为结果.关联规则挖掘用于寻找给定数据集中项之间的 ...
- 使用NSURLSession实现下载的进度
- WPF 3D 小小小小引擎 - ·WPF 3D变换应用
原文:WPF 3D 小小小小引擎 - ·WPF 3D变换应用 WPF可以提供的3D模型使我们可以轻松地创建3D实体,虽然目前来看还很有一些性能上的问题,不过对于一些简单的3D应用应该是可取的,毕竟其开 ...
- Android WebView 开发详解(一)
转载请注明出处 http://blog.csdn.net/typename/article/details/39030091 powered by meichal zhao 概览: Android ...
- 栈和队列的面试题Java
栈和队列: 面试的时候,栈和队列经常会成对出现来考察.本文包含栈和队列的如下考试内容: (1)栈的创建 (2)队列的创建 (3)两个栈实现一个队列 (4)两个队列实现一个栈 (5)设计含最小函数min ...
- ruby 编写迭代器
class My def initialize(name,age) @name=name @age=age end def sayName puts @name end def sayAge puts ...
- 使用GDI+ DrawDriverString实现行距及字符间距控制
主要是要将一个标题和几段文字绘制到固定大小的图片上,如果一张放不下就生成多张.在使用DrawString是发现无法控制行距 namespace TibetTest { public class ...
- 个人所得税计算器2016 by Jacksile
个人所得税计算器2016 // (83500+i)) { var to=(all*45/100-13505).toFixed(2); document.getElementById("int ...
- hdu4705Y
链接 这题可以算树形DP吧 树上的递推 对于树上的某个节点 反着算比较好做 就是算有多少有simple路径的 固定某个节点u 另两个节点 有两种取法 1.从不同子树里各选一个 2.从所有子树里选一个 ...