有關MVC框架基礎知識請移步=>傳智播客,下載相關入門視頻耐心看完:
有關微軟ASP.NET MVC框架上一版本身份系統知識,請移步=>Jesse Liu的博客參考相關文章:
網上已經有一篇寫了一章就太監的教程:
http://www.cnblogs.com/liuhaorain/p/3776467.html
准備工作:
一、先是基本建立工程,三個圖完事。



二、請大家下載.NET Reflector反編譯工具,這是每個.NET開發人員必備的工具:(這個蠻重要的,很多底層代碼一看,上層為什么那么寫就完全明白了)
具體破解方法不再贅述,非本文重點,請自行解決。
現在,讓我們開始解刨這個看起來很大的框架吧!
一、我列出了在項目自動生成的文件中,需要我們重點關注的類文件(.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信息及“其他”不明信息,不是本系列的重點,就點到這里。
