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++的基础学起来也简便了很多. 第一章 语法基础 第二章 面向对象 第三章 常用工具类 第四章 文件操纵 第五章 ...
随机推荐
- [转载]C#实现POST提交方式
网页自动登录和提交POST信息的核心就是分析网页的源代码(HTML),在C#中,可以用来提取网页HTML的组件比较多,常用的用WebBrowser.WebClient.HttpWebRequest这三 ...
- PHP漏洞全解(六)-跨网站请求伪造
本文主要介绍针对PHP网站的跨网站请求伪造.在CSRF所有攻击方式中包含攻击者伪造一个看起来是其他用户发起的HTTP 请求,事实上,跟踪一个用户发送的HTTP请求才是攻击者的目的. CSRF(Cros ...
- 如何使用 Java8 实现观察者模式?(下)
[编者按]本文作者是 BAE 系统公司的软件工程师 Justin Albano.在本篇文章中,作者通过在 Java8 环境下实现观察者模式的实例,进一步介绍了什么是观察者模式.专业化及其命名规则,供大 ...
- 介绍一个超好用的HICHARTS扩展插件
因为需要,所以HIGHCHARTS了解一下是很有必要的. 但原始应用确实效率不行. 刚好,现在有个需求是从一系列的JSON里抽出表格数据,再显示图形. jquery.highchartsTable.j ...
- 通过navicat连接mysql服务器提示SQL Error (1130): Host '192.168.1.100' is not allowed to connect to this MySQL server
新装一个mysql,尝试用通过navicat连接mysql服务器的时候提示: SQL Error (1130): Host '192.168.1.100' is not allowed to conn ...
- 【Lucene3.6.2入门系列】第03节_简述Lucene中常见的搜索功能
package com.jadyer.lucene; import java.io.File; import java.io.IOException; import java.text.SimpleD ...
- IPv6 tutorial 2 New features: Routing
https://4sysops.com/archives/ipv6-part-2-new-features-routing/ Routing路由选择 In the last post of my IP ...
- Standard Attachments in Oracle Form 标准附件
Standard Attachments in Oracle Form 默认情况下"附件"按钮是灰色的,本文将展示如何让某个Form的附件按钮变亮,并能上传附件. 以用户Form为 ...
- hdu4671Backup Plan
http://acm.hdu.edu.cn/showproblem.php?pid=4671 这个高端的题意啊 看了N久啊 n>m时 直接第一列按顺序来 第二列为M+1 else 第一列顺序 ...
- UVA_11468_Substring_(AC自动机+概率动态规划)
描述 https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&a ...