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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM