Identity-第一章

本篇文章内容搭建Identity项目,实现几个用户基本的功能,了解Identity具体是什么。

 

一、Identity入门

Identity是微软在ASP.NET应用程序中管理用户的一个新的API。

1.1 准备示例项目。

    创建一个新的MVC项目,可以选择MVC模板。样式用Bootstrap。

    在Index页面中显示表格。

clipboard

clipboard[1]

1.2 建立ASP.NET Identity

1.2.1 创建ASP.NET Identity数据库

    在sqlserver中添加一个名称为IdentityDb的数据库。

1.2.2 添加Identity包

    可以通过NuGet下载关于Identity的包。

clipboard[2]

    也可以通过包管理器控制台输入命令安装

clipboard[3]

1.2.3 更新Web.config

     更新数据库连接字符串为你自己的;

    在appsettings添加关于owin的配置,指定应用程序启动时,将有owin启动的类。

clipboard[4]

1.2.4 创建Entity Framewoek类

    1. 创建用户类

        Identity中的用户类是IdentityUser类,属性如下:

clipboard[5]

        注意:IdentityUser只是提供了一些基础信息,一般不能全部满足我们的开发需求,我们可以定义自己的用户类,派生自IdentityUser即可。

    2. 创建数据库上下文

        Identity中的数据上下文对象是IdentityDbContext<T>.我们自己的数据上下文派生自此类。

clipboard[6]

        构造函数调用了基类,传入连接字符串的名称,实例化上下文。

        静态构造器,调用了向数据库植入数据的方法,在CodeFirst第一次创建数据库架构时用。

    3. 创建用户管理器类

        最重要的Identity类之一就是UserManager类,派生自UserManager<T>类。这个类提供对用户的基本操作。举例如下:

clipboard[7]

        我们发现很多方法都是以Async结尾,异步的方法。意味着会并发的执行各种操作,而不会阻塞其他活动,对于每个异步方法,都有相应的同步方法。实现如下:

clipboard[8]

4. 创建启动类

    说了这么多,Identity到底如何才能启动并运行?

    以上中我们介绍了在配置文件中添加的appsetting配置: <add key="owin:AppStartup" value="Users.IdentityConfig" />。

    OWIN约定,为了加载和配置工作,需要一个类,来初始化一些操作,并且类中有一个名称为Configuration的方法,这个方法有OWIN架构调用,传递一个实现了IAppBuilder接口的实现。

clipboard[9]

    这个方法创建了数据库上下文、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 遍历用户

演示如何遍历用户表中的用户。

clipboard[10]

注意获取AppUserManager的实例的方法,F12到GetOwinContext方法,发现他是一个扩展方法,对HttpContextBase的扩展,获取一个实现了IOwin接口的实例对象,这个对象中又有获取UserManager实例的方法。

clipboard[11]

页面上可以这样遍历

clipboard[12]

效果如下:

clipboard[13]

1.3.2 创建用户

不再一一介绍,原理一样,可以查看实例。

1.3.3 密码验证

Identity提供了一个PasswordValidator类,来验证密码。

clipboard[14]

还可以自定义密码验证。

clipboard[15]

1.3.4 用户验证

提供了UserValidator验证用户信息

clipboard[16]

还可以实现自定义用户验证

clipboard[17]

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

posted on 2016-06-30 16:46  zh1990  阅读(313)  评论(0编辑  收藏  举报

导航