本篇文章内容搭建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-第一章的更多相关文章

  1. 《Django By Example》第一章 中文 翻译 (个人学习,渣翻)

    书籍出处:https://www.packtpub.com/web-development/django-example 原作者:Antonio Melé (译者注:本人目前在杭州某家互联网公司工作, ...

  2. MyBatis3.2从入门到精通第一章

    第一章一.引言mybatis是一个持久层框架,是apache下的顶级项目.mybatis托管到goolecode下,再后来托管到github下.(百度百科有解释)二.概述mybatis让程序将主要精力 ...

  3. Nova PhoneGap框架 第一章 前言

    Nova PhoneGap Framework诞生于2012年11月,从第一个版本的发布到现在,这个框架经历了多个项目的考验.一直以来我们也持续更新这个框架,使其不断完善.到现在,这个框架已比较稳定了 ...

  4. 第一章 MYSQL的架构和历史

    在读第一章的过程中,整理出来了一些重要的概念. 锁粒度  表锁(服务器实现,忽略存储引擎). 行锁(存储引擎实现,服务器没有实现). 事务的ACID概念 原子性(要么全部成功,要么全部回滚). 一致性 ...

  5. 第一章 Java多线程技能

    1.初步了解"进程"."线程"."多线程" 说到多线程,大多都会联系到"进程"和"线程".那么这两者 ...

  6. 【读书笔记】《编程珠玑》第一章之位向量&位图

    此书的叙述模式是借由一个具体问题来引出的一系列算法,数据结构等等方面的技巧性策略.共分三篇,基础,性能,应用.每篇涵盖数章,章内案例都非常切实棘手,解说也生动有趣. 自个呢也是头一次接触编程技巧类的书 ...

  7. 《JavaScript高级程序设计(第3版)》阅读总结记录第一章之JavaScript简介

    前言: 为什么会想到把<JavaScript 高级程序设计(第 3 版)>总结记录呢,之前写过一篇博客,研究的轮播效果,后来又去看了<JavaScript 高级程序设计(第3版)&g ...

  8. 《Entity Framework 6 Recipes》翻译系列 (1) -----第一章 开始使用实体框架之历史和框架简述

    微软的Entity Framework 受到越来越多人的关注和使用,Entity Framework7.0版本也即将发行.虽然已经开源,可遗憾的是,国内没有关于它的书籍,更不用说好书了,可能是因为EF ...

  9. 《Entity Framework 6 Recipes》翻译系列(2) -----第一章 开始使用实体框架之使用介绍

    Visual Studio 我们在Windows平台上开发应用程序使用的工具主要是Visual Studio.这个集成开发环境已经演化了很多年,从一个简单的C++编辑器和编译器到一个高度集成.支持软件 ...

  10. JAVA 入门第一章(语法基础)

    本人初学java 博客分享记录一下自己的学习历程 java我的初步学习分为六章,有c和c++的基础学起来也简便了很多. 第一章 语法基础 第二章 面向对象 第三章 常用工具类 第四章 文件操纵 第五章 ...

随机推荐

  1. 如何使用 Zend Expressive 建立 NASA 图片库?

    在本文中,我们将借助 NASA 天文图库 API,使用 Zend Expressive 建立图片库.最后的结果将显示在 AstroSplash 网站,该网站是为了文本特意搭建的.本文系 OneAPM ...

  2. 对加密方式(公钥私钥)的形象理解(以http和https为例)

    https其实就是建构在SSL/TLS之上的 http协议,所以要比较https比http多用多少服务器资源,主要看SSL/TLS本身消耗多少服务器资源. http使用TCP 三次握手建立连接,客户端 ...

  3. html5 飞船动画

    <!DOCTYPE HTML> <html lang="en-US"> <head> <meta charset="UTF-8& ...

  4. html5 鼠标跟随运动

    <!DOCTYPE HTML> <html lang="en-US"> <head> <meta charset="UTF-8& ...

  5. Python Anaconda2 (64-bit) 安装后启动jupyter-notebook默认目录更改

    看了网上很多关于更改 python notebook的,好麻烦,所以想了一招. python notebook 现在改名叫 jupyter-notebook ,被集成在Anaconda中. Anaco ...

  6. Oracle系列之序列

    涉及到表的处理请参看原表结构与数据  Oracle建表插数据等等 语法结构:创建序列 create sequence sequence_name start with num increment by ...

  7. -_-#【减少 DOM 访问】缓存已经访问过的元素

    Minimize DOM Access Cache references to accessed elements 选择器查询是开销很大的方法.所以,使用选择器的次数应该越少越好,并且尽可能缓存选中的 ...

  8. haporoxy的keeplaive ZZ

    转载一个别人总结的http://hi.baidu.com/%D3%E3%B5%C1%B5%C1/blog/item/04ffd1b1854f69ef30add1e8.html httpclose, h ...

  9. HDU 5667 Sequence 矩阵快速幂

    官方题解: 观察递推式我们可以发现,所有的fi​​都是a的幂次,所以我们可以对f​i​​取一个以a为底的log,g​i​​=log​a​​ f​i​​ 那么递推式变g​i​​=b+c∗g​i−1​​+ ...

  10. mvc 4 Razor (@html.xx)语法大全以及应用

    Razor语法大全  @Html ASP.NET MVC 中@Html.Partial,@Html.Action,@Html.RenderPartial,@Html.RenderAction差别 对这 ...