標籤:自動產生 highlight 郵件 ice 產生 mem style png sign
在今天,讀書有時是件“麻煩”事。它需要你付出時間,付出精力,還要付出一份心境。--僅以《Owin+ASP.NET Identity淺析系列》來祭奠那逝去的……
前兩篇部落格僅僅說了下功能如何?,這篇部落格來分析IdentityModels、IdentityConfig、Startup.Auth類檔案在Owin+ASP.NET Identity架構中起到的作用
IdentityModels類檔案存放的是使用者、角色、資料庫上下文等實體類
IdentityConfig類檔案存放的是使用者管理員、角色管理器、資料庫上下文管理器和各種服務,比如郵件服務、簡訊服務等
Startup.Auth類檔案存放的是整套Membership架構的配置資訊
大概瞭解了這些類檔案的作用之後,我們可以看一下微軟幫我們自動產生的程式碼都具備哪些功能?那些是需要我們自己去實現的?
1、首先我們來看一下IdentityModels類檔案,這個類裡面存放了ApplicationUser和ApplicationDbContext實體類
備忘:看到這兩個類,我們可以猜測一下,那大概我們是可以系統管理使用者資訊的,還有資料庫各個表的管理,因為有資料庫上下文嘛
2、再來看一下IdentityConfig類檔案,這個類裡面存放了EmailService、SmsService、ApplicationUserManager、ApplicationSignInManager等服務和管理器
備忘:通過類名已經很明確了,EmailService是提供郵件服務的,SmsService是提供簡訊服務的,ApplicationUserManager(使用者管理員)為我們提供了使用者管理功能,ApplicationSignInManager(登入管理器?先叫這個名字把)為我們提供了登入資訊管理器
3、最後,看一下Startup類(先簡單看下各種管理器的建立和membership架構的一些基礎配置)
備忘:看到這裡(竊笑一下),發現前面定義的各種管理器都被放到了OwinContext裡進行管理了,而且這裡還有關於使用者登入的一些基礎配置
4、看完IdentityModels、IdentityConfig和Startup,就剩下一個,我們如何擷取這些微軟為我們提供的牛牛的各種管理器了?有了這些管理器,就可以開始一個簡單的會員登入註冊並管理這些會員的項目了
protected IAuthenticationManager AuthenticationManager { get { return HttpContext.GetOwinContext().Authentication; } }protected ApplicationUserManager UserManager { get { return HttpContext.GetOwinContext().GetUserManager<ApplicationUserManager>(); } }
備忘:好吧,擷取這些管理器就是這麼簡單!!!有會員可能就會員角色,但是我們發現自動產生的程式碼中並沒有關於角色的相關代碼,所以角色這塊需要我們自己通過擴充現有架構來實現,請關注下一篇部落格《實現使用者角色》
Owin+ASP.NET Identity淺析系列(三)架構結構分析