Owin+ASP.NET Identity淺析系列(三)框架結構分析


在今天,讀書有時是件“麻煩”事。它需要你付出時間,付出精力,還要付出一份心境。--僅以《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>(); } }

 備注:好吧,獲取這些管理器就是這么簡單!!!有會員可能就會員角色,但是我們發現自動生成的代碼中並沒有關於角色的相關代碼,所以角色這塊需要我們自己通過擴展現有框架來實現,請關注下一篇博客《實現用戶角色》


注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2021 ITdaan.com