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>(); } }
备注:好吧,获取这些管理器就是这么简单!!!有会员可能就会员角色,但是我们发现自动生成的代码中并没有关于角色的相关代码,所以角色这块需要我们自己通过扩展现有框架来实现,请关注下一篇博客《实现用户角色》