zoukankan      html  css  js  c++  java
  • ASP.NET MVC5 身份系统Identity

    有关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信息及“其他”不明信息,不是本系列的重点,就点到这里。

  • 相关阅读:
    高并发、高性能、高可用
    性能优化 = 改改代码?
    高级开发必须理解的Java中SPI机制
    java性能优化的50个细节(珍藏版)
    Java API 设计清单
    QString与QByteArray互相转换的方法
    QT 托盘 hover事件捕捉
    qt捕获全局windows消息
    前端开发树形插件带来的烦恼(一)
    靠谱的div引入任何外链内容
  • 原文地址:https://www.cnblogs.com/Xsdd/p/4339750.html
Copyright © 2011-2022 走看看