在今天,读书有时是件“麻烦”事。它需要你付出时间,付出精力,还要付出一份心境。--仅以《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浅析系列(三)框架结构分析的更多相关文章

  1. Owin+ASP.NET Identity浅析系列(四)实现用户角色

    在今天,读书有时是件“麻烦”事.它需要你付出时间,付出精力,还要付出一份心境.--仅以<Owin+ASP.NET Identity浅析系列>来祭奠那逝去的…… 通过Owin+ASP.NET ...

  2. Owin+ASP.NET Identity浅析系列(一)用户登录注册

    在今天,读书有时是件“麻烦”事.它需要你付出时间,付出精力,还要付出一份心境.--仅以<Owin+ASP.NET Identity浅析系列>来祭奠那逝去的…… 使用VS2015创建MVC项 ...

  3. Owin+ASP.NET Identity浅析系列(五)接入第三方登录

    在今天,读书有时是件“麻烦”事.它需要你付出时间,付出精力,还要付出一份心境.--仅以<Owin+ASP.NET Identity浅析系列>来祭奠那逝去的…… OK,用户角色实现后,我们回 ...

  4. Owin+ASP.NET Identity浅析系列(二)扩展用户属性

    在今天,读书有时是件“麻烦”事.它需要你付出时间,付出精力,还要付出一份心境.--仅以<Owin+ASP.NET Identity浅析系列>来祭奠那逝去的…… 上一篇博客讲了用户登录注册问 ...

  5. ASP.NET Identity入门系列教程(一) 初识Identity

    摘要 通过本文你将了解ASP.NET身份验证机制,表单认证的基本流程,ASP.NET Membership的一些弊端以及ASP.NET Identity的主要优势. 目录 身份验证(Authentic ...

  6. Asp.Net生命周期系列三

    上文讲到了HttpRunTime主要做了三个事情,我们先回忆一下. 第一:雇佣了项目经理(HttpApplication). 第二:建立了HttpModule列表,项目经理(HttpRunTime)就 ...

  7. (转)Asp.Net生命周期系列三

    原文地址:http://www.cnblogs.com/skm-blog/p/3178862.html 上文讲到了HttpRunTime主要做了三个事情,我们先回忆一下. 第一:雇佣了项目经理(Htt ...

  8. ASP.NET Identity详解

      Asp.Net Identiy是ASP.NET身份验证机制. 如何构建安全的Web应用? 我们先来思考一个问题:如何构建安全的WEB应用? 一直以来,这都是比较热门的话题.不幸的是,目前还没有一种 ...

  9. Asp.Net生命周期系列四

    上回我们说的当一个Http请求来到HttpModule这里的时候,Asp.Net内部并未对这个Http请求做出任何的处理,我们可以对这个Http请求添加一些我们需要的信息,以方便我们控制这个Http请 ...

随机推荐

  1. 十、curator recipes之信号量InterProcessSemaphoreV2

    简介 跟Java并信号量没有什么不同,curator实现的信号量也是基于令牌桶算法,当一个线程要执行的时候就去桶里面获取令牌,如果有足够的令牌那么我就执行如果没有那么我就阻塞,当线程执行完毕也要将令牌 ...

  2. layui对json数据的格式要求

    layui有自己的一套特定的数据格式交互,必须参数code:0,msg:“”,count:数据size(int),data:”数据List”.**一般我们选择封装返回接收类**. 若想要绑定数据到la ...

  3. VPS虚拟化架构OpenVZ、KVM、Xen、Hyper-V的区别

    1.OpenVZ OpenVZ(简称OVZ)采用SWsoft的Virutozzo虚拟化服务器软件产品的内核,是基于Linux平台的操作系统级服务器虚拟化架构.这个架构直接调用宿主机(俗称:母机)中的内 ...

  4. golang label breaks

    我们在for多层嵌套时,有时候需要直接跳出所有嵌套循环, 这时候就可以用到go的label breaks特征了. 先看一个范例代码: package main import (     "f ...

  5. 在Pandas中直接加载MongoDB的数据

    在使用Pandas进行数据处理的时候,我们通常从CSV或EXCEL中导入数据,但有的时候数据都存在数据库内,我们并没有现成的数据文件,这时候可以通过Pymongo这个库,从mongoDB中读取数据,然 ...

  6. Android ImageSpan的使用

    编辑框中加图片 代码如下: mSubjectDetailView = (TextView) findViewById(R.id.subject_detail); CharSequence text = ...

  7. restful知识点之六rest-framework组件流程图

  8. 记录一次json转换的经历

    需求:数据库里面的一个字段,存的是json数据,类似{‘name’:“name1”,'items':“[{code:0,name:'name2'}]”},{‘name’:“name3”,'items' ...

  9. Mac系统查看端口占用和杀死进程

    查看进程占用 lsof -i tcp:8080 该命令会显示占用8080端口的进程,有其 pid ,可以通过pid关掉该进程 杀死进程 kill pid 例如 kill 39394 转自:https: ...

  10. HTML5盒子模型。

    盒子模型. 盒子由 margin.border.padding.content 四部分组成. margin :外边距 border:边框 padding:内边距 (内容与边框的距离) content: ...