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 ...
随机推荐
- 练习--LINUX进程间通信之有名管理FIFO
从FIFO中读取数据: 约定:如果一个进程为了从FIFO中读取数据而阻塞打开FIFO,那么称该进程内的读操作为设置了阻塞标志的读操作. 如果有进程写打开FIFO,且当前FIFO内没有数据,则对于设置了 ...
- Java集合类之栈Stack
package com.test; import java.util.*; public class Demo7_3 { public static void main(String[] args) ...
- 解读分库分表中间件Sharding-JDBC
[编者按]数据库分库分表从互联网时代开启至今,一直是热门话题.在NoSQL横行的今天,关系型数据库凭借其稳定.查询灵活.兼容等特性,仍被大多数公司作为首选数据库.因此,合理采用分库分表技术应对海量数据 ...
- API:System V & POSI
http://blog.sina.com.cn/s/blog_5b1572e30100gulz.html
- 转:Web service是什么?
作者: 阮一峰 我认为,下一代互联网软件将建立在Web service(也就是"云")的基础上. 我把学习笔记和学习心得,放到网志上,欢迎指正. 今天先写一个最基本的问题,Web ...
- S5PV210的IRAM应用
准备分析 IRAM的大小96k,其实前两个程序都在这里运行的,程序都小于16K.要实现的是从把IRAM从的前16k从IRAM的起始地址0xD0020000拷贝到0xD0024000 处,调用mai ...
- tlplayer for wince 版本正式商用
开始的时候tlplayer遇到一些问题,后来经过一些简单优化后,可以满足商用条件. 支持http,mms,rtsp等网络协议,支持内存流播放.需要定制或者需要支持hls,rtmp,m3u8等协议的,请 ...
- mac 修改密码后 频繁输入钥匙串问题修复方法
就一句话就是 清空钥匙串缓存 下面是具体方法 进入硬盘目录-->资源库-->Keychains 删除里面的文件夹(这个文件夹里面有 keychain-2.db keychain-2.db- ...
- .NET System.Timers.Timer的原理和使用(开发定时执行程序)
概述(来自MSDN) Timer 组件是基于服务器的计时器,它使您能够指定在应用程序中引发Elapsed 事件的周期性间隔.然后可以操控此事件以提供定期处理.例如,假设您有一台关键性服务器,必须每周7 ...
- NOI2014 起床困难综合症
3668: [Noi2014]起床困难综合症 Time Limit: 10 Sec Memory Limit: 512 MBSubmit: 225 Solved: 153[Submit][Stat ...