细细拆解 ASP.NET MVC5 身份系统Identity------(1)

有关MVC框架基础知识请移步=>传智播客,下载相关入门视频耐心看完:

http://net.itcast.cn/subject/tegongnet/index.html

有关微软ASP.NET MVC框架上一版本身份系统知识,请移步=>Jesse Liu的博客参考相关文章:

http://www.cnblogs.com/jesse2013/p/membership.html

网上已经有一篇写了一章就太监的教程:

http://www.cnblogs.com/liuhaorain/p/3776467.html

准备工作:

一、先是基本建立工程,三个图完事。

二、请大家下载.NET Reflector反编译工具,这是每个.NET开发人员必备的工具:(这个蛮重要的,很多底层代码一看,上层为什么那么写就完全明白了)

http://www.wuleba.com/19035.html

具体破解方法不再赘述,非本文重点,请自行解决。

现在,让我们开始解刨这个看起来很大的框架吧!

一、我列出了在项目自动生成的文件中,需要我们重点关注的类文件(.cs):

1.App_Start文件夹中的:

  Startup.Auth.cs  

    //这个文件里,只有一个ConfigureAuth方法,此方法在根目录的Startup.cs中被调用。

    //在此方法里,你可以调用(app.Use/或其他方法名,貌似是用了Node的命名法)来加载有关身份验证所需要的某些“中间件(middleware)”

    //微软给了很多例子,比如:

      //1.配置数据库上下文app.CreatePerOwinContext(ApplicationDbContext.Create);

        //使用EntityFrameWork Code First 封装数据库的信息,集成很多巨方便的数据操作类库

      //2.初始化用户管理器和登录管理器

        //app.CreatePerOwinContext<ApplicationUserManager>(ApplicationUserManager.Create);
        //app.CreatePerOwinContext<ApplicationSignInManager>(ApplicationSignInManager.Create);

        //两个createxxx里面封装好的很多方法可直接用来登录,注销,注册,验证邮箱等,很方便

        //你去控制器里看其实注册登录只需要一句 await LoginAsync(...)/CreateAsync(...)就行了

      //3.还有什么Cookie登录,记住我功能,外站账号登陆等,都是封装好的逻辑方法

        //每一个app.Use(...)其实背后都有超多的逻辑代码,每个Use又只做了一件事,充分体现了强大的高内聚松耦合的框架特性!

  IdentityConfig.cs  

    //这里面有四个类:

      //前两个是SMS短信和Email服务,非本章重点,略

      //后面两个分别是:

        ApplicationUserManager : UserManager<ApplicationUser>

        ApplicationSignInManager : SignInManager<ApplicationUser, string>

      //从名字上可以看出是“用户管理器”和“登录管理器”,其实说白了就是封装了操作Identity数据库的方法+登录用到的方法

      //比如异步登录/注册的  LoginAsync(/*paras*/),createAsync(/*paras*/)

      //比如异步插入+保存数据的InsertAsync(/*paras*/)  SaveChanges(); 有的是些EF框架的东西

      //后面的文章会反编译这两个类,看看具体的逻辑是什么大家就懂了。

2.Controllers文件夹中的:

  AccountController.cs

  //控制器,具体的后文详述

3.Models文件夹中的:

  IdentityModels.cs

  //这里面有两个类:

    ApplicationUser : IdentityUser

    ApplicationDbContext : IdentityDbContext<ApplicationUser>

  //前者代表了用户表,后者代表了Identity数据库。

*4.根目录最底下的那个

  Startup.cs  

    //这个里面只有一个Configuration(IAppBuilder app)方法

    //用自己的app参数调用上面那个Startup.Auth.cs文件里的那个ConfigureAuth(app);

    //关于Configuration这个方法,简单理解是 “类似C语言中main函数”

    //网站运行后,框架底层帮助我们封装了程序的信息到app这个对象里,然后传递app到这个Configuration里,开始整个网站的运行。

    //我们可以查看一下这个东西里面到底有什么:

    //它是实现IAppBuilder接口的一个AppBuilder类的实例对象,里面主要是有个字典类的字段,运行后它是这个样子的:

    

    //可以看到是一些host信息及“其他”不明信息,不是本系列的重点,就点到这里。

时间: 2024-10-18 21:20:22

细细拆解 ASP.NET MVC5 身份系统Identity------(1)的相关文章

ASP.NET MVC5路由系统机制详细讲解

请求一个ASP.NET mvc的网站和以前的web form是有区别的,ASP.NET MVC框架内部给我们提供了路由机制,当IIS接受到一个请求时,会先看是否请求了一个静态资源(.html,css,js,图片等),这一步是web form和mvc都是一样的,如果不是则说明是请求的是一个动态页面,就会走asp.net的管道,mvc的程序请求都会走路由系统,会映射到一个Controller对应的Action方法,而web form请求动态页面是会查找本地实际存在一个aspx文件.下面通过一个ASP

ASP.NET MVC5 + EF6 + Bootstrap3 (7) Bootstrap的栅格系统

文章来源: Slark.NET-博客园http://www.cnblogs.com/slark/p/mvc5-ef6-bs3-get-started-grid.html 上一节:ASP.NET MVC5 + EF6 入门教程 (6) View中的Razor使用 源码下载:点我下载 要做一个完整的系统,除了需要MVC这样的B/S框架及EF这样的数据库访问技术之外,一个简洁.美观.大方的UI框架也是必不可少的. 话不多说,有请今天的主角登场!! 看看它的自我介绍,是不是很屌.没错,这个介绍一点都不夸

ASP.NET.4.5.1+MVC5.0系统角色和权限讲解

细说ASP.NET.4.5.1+MVC5.0系统角色和权限 MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑.数据.界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑.MVC被独特的发展起来用于映射传统的输入.处理和输出功能在一个逻辑的图形化用户界面的结构中. 1.在项目中新建文件夹Helpers 2.在HR.

asp.net core系列 48 Identity 身份模型自定义

原文:asp.net core系列 48 Identity 身份模型自定义 一.概述 ASP.NET Core Identity提供了一个框架,用于管理和存储在 ASP.NET Core 应用中的用户帐户. Identity添加到项目时单个用户帐户选择作为身份验证机制. 默认情况下,Identity可以使用的 Entity Framework (EF) Core 数据模型. 本文介绍如何自定义的身份标识模型. 1.1 下面是已经存在的身份模型, 由以下实体类型组成: 实体类型 说明 关系 Use

ASP.NET MVC5(一):ASP.NET MVC概览

ASP.NET MVC概览 ASP.NET MVC是一种构建Web应用程序的框架,它将一般的MVC(Model-View-Controller)模式应用于ASP.NET框架. ASP.NET MVC模式简介 MVC将Web应用程序划分为三个主要的部分,以下是MSDN给出的定义: 模型(Model):模型对象是实现应用程序数据域逻辑的应用程序部件. 通常,模型对象会检索模型状态并将其存储在数据库中. 例如,Product 对象可能会从数据库中检索信息,操作该信息,然后将更新的信息写回到 SQL S

【转】权限管理学习 一、ASP.NET FORMS身份认证

[转]权限管理学习 一.ASP.NET Forms身份认证 说明:本文示例使用的VS2017和MVC5.系统无论大小.牛逼或屌丝,一般都离不开注册.登录.那么接下来我们就来分析下用户身份认证. 简单实现登录.注销 以前在学习.net的时候不知道什么Forms身份认证,直接用session实现登录,效果也蛮好嘛.而且用户信息存在服务端,安全.前端代码: @if (string.IsNullOrWhiteSpace(ViewBag.UserName)) { <form action="/hom

ASP.NET中身份验证的三种方法

Asp.net的身份验证有有三种,分别是"Windows | Forms | Passport",其中又以Forms验证用的最多,也最灵活.Forms 验证方式对基于用户的验证授权提供了很好的支持,可以通过一个登录页面验证用户的身份,将此用户的身份发回到客户端的Cookie,之后此用户再访问这个web应用就会连同这个身份Cookie一起发送到服务端.服务端上的授权设置就可以根据不同目录对不同用户的访问授权进行控制了. 问题来了,在实际是用中我们往往需要的是基于角色,或者说基于用户组的验

ASP.NET MVC5 入门

参考资料<ASP.NET MVC5 高级编程>第5版 第1章 入门 1.1 ASP.NET MVC 简介 ASP.NET MVC是一种构建Web 应用程序的框架,它将一般的MVC(Model-View-Controller)模式应用于ASP.NET 框架. 在分离应用程序的关注点方面(例如,从显示逻辑中分离出数据访问逻辑),MVC是一种强大而简洁的方式. MVC 将应用程序的用户界面(User InterFace,UI)分为三个主要部分: 模型:一组类,描述了要处理的数据以及修改和操作数据的业

构建ASP.NET MVC5+EF6+EasyUI 1.4.3+Unity4.x注入的后台管理系统(66)-MVC WebApi 用户验证 (2)

前言: 构建ASP.NET MVC5+EF6+EasyUI 1.4.3+Unity4.x注入的后台管理系统(65)-MVC WebApi 用户验证 (1) 回顾上一节,我们利用webapi简单的登录并进行了同域访问与跨域访问来获得Token,您可以跳转到上一节下载代码来一起动手. 继续上一篇的文章,我们接下来演示利用拿到的Token来访问接口,管理接口,利用系统权限管理接口,对每个接口进行授权(管理接口为选读部分,因为你需要阅读最开始权限管理部分(18-27节),才能阅读这部分) 开发环境: V