zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    事件类型
    事件
    节点样式
    节点
    将博客搬至CSDN
    ios开发 上传到App Store 时出错. iTunes Store Operation Failed, An Error occurred uploading to the iTunes store.
    ios开发百度高德地图经纬度相互转换的算法解析
    ios开发使用cocoapods倒入一堆的三方库之后开始崩溃了。发觉是导入极光引用的iOS10UserNotifications.framework导致的问题 Reason: image not found
    ios开发webview 的三种引用方式以及动态更新本地静态页的方法
    ios开发oc高仿京东金融白条额度余额的 ios开发水波纹 ios开发水正弦曲线波纹 ios开发雷达扫描的动画效果
  • 原文地址:https://www.cnblogs.com/zh1990/p/5630514.html
Copyright © 2011-2022 走看看