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>(); } }
备注:好吧,获取这些管理器就是这么简单!!!有会员可能就会员角色,但是我们发现自动生成的代码中并没有关于角色的相关代码,所以角色这块需要我们自己通过扩展现有框架来实现,请关注下一篇博客《实现用户角色》
Owin+ASP.NET Identity浅析系列(三)框架结构分析的更多相关文章
- Owin+ASP.NET Identity浅析系列(四)实现用户角色
在今天,读书有时是件“麻烦”事.它需要你付出时间,付出精力,还要付出一份心境.--仅以<Owin+ASP.NET Identity浅析系列>来祭奠那逝去的…… 通过Owin+ASP.NET ...
- Owin+ASP.NET Identity浅析系列(一)用户登录注册
在今天,读书有时是件“麻烦”事.它需要你付出时间,付出精力,还要付出一份心境.--仅以<Owin+ASP.NET Identity浅析系列>来祭奠那逝去的…… 使用VS2015创建MVC项 ...
- Owin+ASP.NET Identity浅析系列(五)接入第三方登录
在今天,读书有时是件“麻烦”事.它需要你付出时间,付出精力,还要付出一份心境.--仅以<Owin+ASP.NET Identity浅析系列>来祭奠那逝去的…… OK,用户角色实现后,我们回 ...
- Owin+ASP.NET Identity浅析系列(二)扩展用户属性
在今天,读书有时是件“麻烦”事.它需要你付出时间,付出精力,还要付出一份心境.--仅以<Owin+ASP.NET Identity浅析系列>来祭奠那逝去的…… 上一篇博客讲了用户登录注册问 ...
- ASP.NET Identity入门系列教程(一) 初识Identity
摘要 通过本文你将了解ASP.NET身份验证机制,表单认证的基本流程,ASP.NET Membership的一些弊端以及ASP.NET Identity的主要优势. 目录 身份验证(Authentic ...
- Asp.Net生命周期系列三
上文讲到了HttpRunTime主要做了三个事情,我们先回忆一下. 第一:雇佣了项目经理(HttpApplication). 第二:建立了HttpModule列表,项目经理(HttpRunTime)就 ...
- (转)Asp.Net生命周期系列三
原文地址:http://www.cnblogs.com/skm-blog/p/3178862.html 上文讲到了HttpRunTime主要做了三个事情,我们先回忆一下. 第一:雇佣了项目经理(Htt ...
- ASP.NET Identity详解
Asp.Net Identiy是ASP.NET身份验证机制. 如何构建安全的Web应用? 我们先来思考一个问题:如何构建安全的WEB应用? 一直以来,这都是比较热门的话题.不幸的是,目前还没有一种 ...
- Asp.Net生命周期系列四
上回我们说的当一个Http请求来到HttpModule这里的时候,Asp.Net内部并未对这个Http请求做出任何的处理,我们可以对这个Http请求添加一些我们需要的信息,以方便我们控制这个Http请 ...
随机推荐
- Spring入门(一)— IOC、DI
一.Spring介绍 Spring 是一个开源框架,是为了解决企业应用程序开发复杂性而创建的.框架的主要优势之一就是其分层架构,分层架构允许您选择使用哪一个组件,同时为 J2EE 应用程序开发提供集成 ...
- UNIX IPC: POSIX 消息队列
首先在我的MAC OSX上试了一下虽然有_POSIX_MESSAGE_PASSING的宏定义,但是用gcc编译会提示没有mqueue.h头文件,先放一边.在Ubuntu上使用正常,不过POSIX消息队 ...
- Sspring bean被初始化加载2次
Sspring bean被初始化加载2次 spring框架的web项目时,启动的时候发现某个bean被加载了两次,比如使用SchedulingConfigurer或者使用@PostConstruct的 ...
- git杂记-查看历史提交
普通查看:git log.输入q退出比较. $ git log commit ca82a6dff817ec66f44342007202690a93763949 Author: Scott Chacon ...
- CF17E Palisection
题意 给定一个长度为n的小写字母串.问你有多少对相交的回文子串(包含也算相交) 相交的回文子串个数 \(mod\ 51123987\) Sol 求相交的回文子串不太好求 考虑用总数减去不相交的回文串个 ...
- 008Spring & JPA & Hibernate & MySQL
01下载免安装版MySQL 02安装MySQL a)将MySQL压缩包解压到合适的位置,以C:\programmer\Tools\mysql-5.7.20-winx64路径为例: b)新建系统变量,变 ...
- Java设计模式—解释器模式&迭代器模式简介
解释器模式在实际的系统开发中使用得非常少,因为它会引起效率.性能以及维护等问题,一般在大中型的框架型项目能够找到它的身影,如一些数据分析工具.报表设计工具.科学计算工具等,若你确实遇到" ...
- intellij idea下面安装热部署插件 JRebel 5.2
之前一直是用的eclipse的JRebel,因为现在的公司用的是idea,于是尝试了在idea下面安装,把安装的过程中出现的问题记录下. 1.首先是在 idea里面install JRebel,Fil ...
- JS字面量创建方式的优缺点
http://www.cnblogs.com/wuyaxing/p/6416441.html
- 测试拆分比较大SQL Server数据库
有2个办法拆分比较大的数据库. 1.重建聚集索引2.收缩数据库 一.准备测试数据 )) go insert into blocktable(blockno,binno,rack,chipcount,m ...