Identity-第一章
本篇文章内容搭建Identity项目,实现几个用户基本的功能,了解Identity具体是什么。
一、Identity入门
Identity是微软在ASP.NET应用程序中管理用户的一个新的API。
1.1 准备示例项目。
创建一个新的MVC项目,可以选择MVC模板。样式用Bootstrap。
在Index页面中显示表格。
1.2 建立ASP.NET Identity
1.2.1 创建ASP.NET Identity数据库
在sqlserver中添加一个名称为IdentityDb的数据库。
1.2.2 添加Identity包
可以通过NuGet下载关于Identity的包。
也可以通过包管理器控制台输入命令安装
1.2.3 更新Web.config
更新数据库连接字符串为你自己的;
在appsettings添加关于owin的配置,指定应用程序启动时,将有owin启动的类。
1.2.4 创建Entity Framewoek类
1. 创建用户类
Identity中的用户类是IdentityUser类,属性如下:
注意:IdentityUser只是提供了一些基础信息,一般不能全部满足我们的开发需求,我们可以定义自己的用户类,派生自IdentityUser即可。
2. 创建数据库上下文
Identity中的数据上下文对象是IdentityDbContext<T>.我们自己的数据上下文派生自此类。
构造函数调用了基类,传入连接字符串的名称,实例化上下文。
静态构造器,调用了向数据库植入数据的方法,在CodeFirst第一次创建数据库架构时用。
3. 创建用户管理器类
最重要的Identity类之一就是UserManager类,派生自UserManager<T>类。这个类提供对用户的基本操作。举例如下:
我们发现很多方法都是以Async结尾,异步的方法。意味着会并发的执行各种操作,而不会阻塞其他活动,对于每个异步方法,都有相应的同步方法。实现如下:
4. 创建启动类
说了这么多,Identity到底如何才能启动并运行?
以上中我们介绍了在配置文件中添加的appsetting配置: <add key="owin:AppStartup" value="Users.IdentityConfig" />。
OWIN约定,为了加载和配置工作,需要一个类,来初始化一些操作,并且类中有一个名称为Configuration的方法,这个方法有OWIN架构调用,传递一个实现了IAppBuilder接口的实现。
这个方法创建了数据库上下文、UserManager,并告诉ASP.NET如何用Cookie表示已认证的用户,以及认证失败的话,跳转的页面。
1.3 使用Asp.Net Identity
问题
回答
什么是ASP.NET Identity?
ASP.NET Identity是用来管理用户数据并执行认证和授权的API
为何要关注它?
大多数应用程序都需要用户创建账号,并提供凭据去访问内容和功能。ASP.NET Identity提供了执行这些操作的工具
如何在MVC框架中使用它?
ASP.NET Identity不是由MVC框架直接使用的,但它集成了标准的MVC授权特性
1.3.1 遍历用户
演示如何遍历用户表中的用户。
注意获取AppUserManager的实例的方法,F12到GetOwinContext方法,发现他是一个扩展方法,对HttpContextBase的扩展,获取一个实现了IOwin接口的实例对象,这个对象中又有获取UserManager实例的方法。
页面上可以这样遍历
效果如下:
1.3.2 创建用户
不再一一介绍,原理一样,可以查看实例。
1.3.3 密码验证
Identity提供了一个PasswordValidator类,来验证密码。
还可以自定义密码验证。
1.3.4 用户验证
提供了UserValidator验证用户信息
还可以实现自定义用户验证
1.4 剩余功能
1.4.1 删除用户
不再一一介绍,原理一样,可以查看实例。
1.4.2编辑用户
不再一一介绍,原理一样,可以查看实例。
参考博客:
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-第一章的更多相关文章
- 《Django By Example》第一章 中文 翻译 (个人学习,渣翻)
书籍出处:https://www.packtpub.com/web-development/django-example 原作者:Antonio Melé (译者注:本人目前在杭州某家互联网公司工作, ...
- MyBatis3.2从入门到精通第一章
第一章一.引言mybatis是一个持久层框架,是apache下的顶级项目.mybatis托管到goolecode下,再后来托管到github下.(百度百科有解释)二.概述mybatis让程序将主要精力 ...
- Nova PhoneGap框架 第一章 前言
Nova PhoneGap Framework诞生于2012年11月,从第一个版本的发布到现在,这个框架经历了多个项目的考验.一直以来我们也持续更新这个框架,使其不断完善.到现在,这个框架已比较稳定了 ...
- 第一章 MYSQL的架构和历史
在读第一章的过程中,整理出来了一些重要的概念. 锁粒度 表锁(服务器实现,忽略存储引擎). 行锁(存储引擎实现,服务器没有实现). 事务的ACID概念 原子性(要么全部成功,要么全部回滚). 一致性 ...
- 第一章 Java多线程技能
1.初步了解"进程"."线程"."多线程" 说到多线程,大多都会联系到"进程"和"线程".那么这两者 ...
- 【读书笔记】《编程珠玑》第一章之位向量&位图
此书的叙述模式是借由一个具体问题来引出的一系列算法,数据结构等等方面的技巧性策略.共分三篇,基础,性能,应用.每篇涵盖数章,章内案例都非常切实棘手,解说也生动有趣. 自个呢也是头一次接触编程技巧类的书 ...
- 《JavaScript高级程序设计(第3版)》阅读总结记录第一章之JavaScript简介
前言: 为什么会想到把<JavaScript 高级程序设计(第 3 版)>总结记录呢,之前写过一篇博客,研究的轮播效果,后来又去看了<JavaScript 高级程序设计(第3版)&g ...
- 《Entity Framework 6 Recipes》翻译系列 (1) -----第一章 开始使用实体框架之历史和框架简述
微软的Entity Framework 受到越来越多人的关注和使用,Entity Framework7.0版本也即将发行.虽然已经开源,可遗憾的是,国内没有关于它的书籍,更不用说好书了,可能是因为EF ...
- 《Entity Framework 6 Recipes》翻译系列(2) -----第一章 开始使用实体框架之使用介绍
Visual Studio 我们在Windows平台上开发应用程序使用的工具主要是Visual Studio.这个集成开发环境已经演化了很多年,从一个简单的C++编辑器和编译器到一个高度集成.支持软件 ...
- JAVA 入门第一章(语法基础)
本人初学java 博客分享记录一下自己的学习历程 java我的初步学习分为六章,有c和c++的基础学起来也简便了很多. 第一章 语法基础 第二章 面向对象 第三章 常用工具类 第四章 文件操纵 第五章 ...
随机推荐
- 如何使用 Zend Expressive 建立 NASA 图片库?
在本文中,我们将借助 NASA 天文图库 API,使用 Zend Expressive 建立图片库.最后的结果将显示在 AstroSplash 网站,该网站是为了文本特意搭建的.本文系 OneAPM ...
- 对加密方式(公钥私钥)的形象理解(以http和https为例)
https其实就是建构在SSL/TLS之上的 http协议,所以要比较https比http多用多少服务器资源,主要看SSL/TLS本身消耗多少服务器资源. http使用TCP 三次握手建立连接,客户端 ...
- html5 飞船动画
<!DOCTYPE HTML> <html lang="en-US"> <head> <meta charset="UTF-8& ...
- html5 鼠标跟随运动
<!DOCTYPE HTML> <html lang="en-US"> <head> <meta charset="UTF-8& ...
- Python Anaconda2 (64-bit) 安装后启动jupyter-notebook默认目录更改
看了网上很多关于更改 python notebook的,好麻烦,所以想了一招. python notebook 现在改名叫 jupyter-notebook ,被集成在Anaconda中. Anaco ...
- Oracle系列之序列
涉及到表的处理请参看原表结构与数据 Oracle建表插数据等等 语法结构:创建序列 create sequence sequence_name start with num increment by ...
- -_-#【减少 DOM 访问】缓存已经访问过的元素
Minimize DOM Access Cache references to accessed elements 选择器查询是开销很大的方法.所以,使用选择器的次数应该越少越好,并且尽可能缓存选中的 ...
- haporoxy的keeplaive ZZ
转载一个别人总结的http://hi.baidu.com/%D3%E3%B5%C1%B5%C1/blog/item/04ffd1b1854f69ef30add1e8.html httpclose, h ...
- HDU 5667 Sequence 矩阵快速幂
官方题解: 观察递推式我们可以发现,所有的fi都是a的幂次,所以我们可以对fi取一个以a为底的log,gi=loga fi 那么递推式变gi=b+c∗gi−1+ ...
- mvc 4 Razor (@html.xx)语法大全以及应用
Razor语法大全 @Html ASP.NET MVC 中@Html.Partial,@Html.Action,@Html.RenderPartial,@Html.RenderAction差别 对这 ...