ASP.NET Web API 2框架揭秘
2020-04-15 15:23:39 0 举报
AI智能生成
ASP.NET Web API 2框架揭秘
作者其他创作
大纲/内容
9 参数的绑定
9.1 参数绑定系统全景展示
9.1.1 HttpParameterBinding
9.1.2 ActionValueBinder
9.2 5个原生的HttpParameterBinding
9.2.1 ModelBinderParameterBinding
9.2.2 FormatterParameterBinding
9.2.3 HttpRequestParameterBinding
9.2.4 CancellationTokenParameterBinding
9.2.5 ErrorParameterBinding
9.3 HttpParameterBinding的创建策略
9.3.1 ParameterBindingAttribute特性
9.3.2 注册参数绑定规则
9.3.3 HttpParameterBinding的创建策略
10 参数的验证
10.1 几种参数验证方式
10.1.1 手工验证绑定的参数
10.1.2 使用ValidationAttribute特性
10.1.3 创建自我验证数据类型
10.2 以ModelValidator为核心的参数验证系统
10.2.1 DataAnnotationsModelValidator
10.2.2 RequiredMemberModelValidator
10.2.3 ValidatableObjectAdapter
10.2.4 ErrorModelValidator
10.3 基于数据注解特性的参数验证
10.3.1 ValidationAttribute特性
10.3.2 DataAnnotationsModelValidator
10.3.3 DataAnnotationsModelValidatorProvider
10.4 参数验证流程
10.4.1 ModelValidationNode
10.4.2 “验证树”是如何被建立起来的
10.4.3 “必需”数据成员的验证
10.4.4 BodyModelValidator
11 Action的执行
11.1 Action方法的执行
11.1.1 HttpActionInvoker
11.1.2 ActionExecutor
11.2 内容协商
11.2.1 ContentNegotiator
11.2.2 MediaTypeFormatter是如何被筛选出来的
11.2.3 如何确定响应字符集
11.3 HttpActionResult
11.3.1 无响应主体的HttpActionResult
11.3.2 含响应主体的HttpActionResult
11.3.3 ResponseMessageResult
11.4 HttpResponseMessage的生成
11.4.1 ActionResultConverter
11.4.2 从消息处理管道来看HttpResponseMessage的生成
12 过滤器
12.1 Filter及其提供机制
12.1.1 Filter
12.1.2 FilterProvider
12.1.3 5种Filter类型
12.2 认证与授权
12.2.1 Identity
12.2.2 Principal
12.2.3 AuthenticationFilter
12.2.4 AuthorizationFilter
12.3 针对Action方法执行前后的拦截
12.3.1 ActionFilterAttribute
12.3.2 实例演示:利用自定义ActionFilter实现对Action方法执行结果的缓存
12.4 异常处理与Filter的屏蔽
12.4.1 ExceptionFilter
12.4.2 实例演示:利用自定义的ExceptionFilter集成EntLib进行异常处理(S1208)
12.4.3 OverrideFilter
13 安全
13.1 IIS/ASP.NET认证
13.1.1 Basic认证
13.1.2 Digest认证
13.1.3 集成Windows认证
13.1.4 Forms认证
13.2 SSL/TLS
13.2.1 非对称加密
13.2.2 通过SSL/TLS实现传输安全
13.2.3 SSL/TLS的应用
13.3 第三方认证
13.3.1 OAuth 2.0简介
13.3.2 Implicit Authorization Grant
13.3.3 Authorization Code Authorization Grant
14 跨域资源共享
14.1 同源策略
14.1.1 实例演示:跨域调用Web API
14.1.2 JSONP
14.2 CORS规范
14.2.1 资源的授权
14.2.2 实例演示:利用自定义的MessageHandler支持跨域资源共享
14.3 CORS在ASP.NET Web API中的实现
14.3.1 实例演示:采用ASP.NET Web API原生的机制实现跨域资源共享(S1406)
14.3.2 CORS授权策略及其提供机制
14.3.3 资源授权的检验和CORS响应报头的生成
14.3.4 CorsMessageHandler
15 Web API的调用
15.1 HttpClient
15.1.1 HttpMessageInvoker
15.1.2 HttpClientHandler
15.1.3 HttpClient
15.2 客户端消息处理管道
15.2.1 HttpMessageHandler管道
15.2.2 HttpClientFactory
15.3 面向“对象”编程
15.3.1 将数据对象写入请求消息
15.3.2 读取HTTP消息主体内容并反序列化为数据对象
附录A 实例列表
1 概述
1.1 何为Web
1.1.1 TCP/IP与HTTP
1.1.2 Web资源
1.1.3 HTTP事务
1.1.4 HTTP报文
1.2 RESTful Web API
1.2.1 为什么叫这个奇怪的名字
1.2.2 RESTful Web API具有怎样的特征
1.3 初识ASP.NET Web API
1.3.1 构建解决方案
1.3.2 定义Web API
1.3.3 以Web Host方式寄宿Web API
1.3.4 以Self Host方式寄宿Web API
1.3.5 利用HttpClient调用Web API
1.3.6 创建一个“联系人管理器”应用
2 路由
2.1 ASP.NET路由
2.1.1 请求URL与物理文件的分离
2.1.2 实例演示:通过URL路由实现请求地址与Web页面的映射
2.1.3 ASP.NET路由系统
2.1.4 注册路由映射
2.1.5 根据路由规则生成URL
2.1.6 HttpHandler的动态映射
2.2 ASP.NET Web API路由
2.2.1 请求与响应
2.2.2 ASP.NET Web API路由系统
2.2.3 注册路由映射
2.3 两个路由系统的衔接
2.3.1 HostedHttpRoute与HostedHttpRouteCollection
2.3.2 HttpControllerRouteHandler与HttpControllerHandler
3 消息处理管道
3.1 HttpMessageHandler管道
3.1.1 HttpMessageHandler
3.1.2 DelegatingHandler
3.1.3 HttpServer
3.1.4 HttpRoutingDispatcher
3.2 Web Host模式下的消息处理管道
3.2.1 HttpControllerHandler
3.2.2 实例演示:自定义HttpMessageHandler实现HTTP方法重写(S305)
3.3 Self Host模式下的消息处理管道
3.3.1 HttpBinding
3.3.2 HttpSelfHostServer
4 HttpController的激活
4.1 HttpController
4.1.1 HttpControllerContext
4.1.2 HttpControllerDescriptor
4.1.3 ApiController
4.2 HttpController是如何被创建的
4.2.1 程序集的解析
4.2.2 HttpController类型的解析
4.2.3 HttpController的选择
4.2.4 HttpController的创建
4.2.5 HttpController的激活与释放
4.3 IoC的应用
4.3.1 利用Unity来认识IoC
4.3.2 基于IoC的HttpControllerActivator
4.3.3 基于IoC的DependencyResolver
5 Action的选择
5.1 HttpActionDescriptor
5.1.1 ReflectedHttpActionDescriptor
5.1.2 ActionNameAttribute
5.1.3 方法名决定HTTP方法
5.1.4 ActionHttpMethodProvider
5.1.5 针对特性的缓存
5.2 HttpParameterDescriptor
5.2.1 ReflectedHttpParameterDescriptor
5.2.2 实例演示:解析Action方法参数描述信息
5.3 HttpActionSelector
5.3.1 ApiControllerActionSelector
5.3.2 有效的Action方法
5.3.3 目标Action方法的选择
6 特性路由
6.1 特性路由注册
6.1.1 HttpRouteInfoProvider特性
6.1.2 基本路由映射
6.1.3 让URL模板能够尽可能反映资源的层次结构
6.1.4 为路由变量设置约束
6.1.5 通配符路由变量
6.1.6 缺省路由变量
6.1.7 设置URI前缀
6.2 约束表达式的解析
6.2.1 RangeRouteConstraint
6.2.2 InlineConstraintResolver
6.2.3 自定义约束
6.3 路由解析
6.3.1 RouteCollectionRoute
6.3.2 实例演示:查看特性路由注册生成的RouteCollectionRoute对象
6.3.3 子路由对象的创建
6.3.4 HttpRouteData的生成
7 Model绑定(上篇)
7.1 Model绑定解决怎样的问题
7.1.1 基于HttpRouteData的参数绑定
7.1.2 基于查询字符串的参数绑定
7.2 Model元数据的解析
7.2.1 Model元数据的层次化结构
7.2.2 ModelMetadata
7.2.3 ModelMetadataProvider
7.3 ValueProvider
7.3.1 ValueProviderResult
7.3.2 NameValuePairsValueProvider
7.3.3 RouteDataValueProvider与QueryStringValueProvider
7.3.4 CompositeValueProvider
7.4 ValueProviderFactory
7.4.1 RouteDataValueProviderFactory与QueryStringValueProviderFactory
7.4.2 CompositeValueProviderFactory
7.4.3 ValueProviderFactory的注册
7.4.4 自定义ValueProviderFactory
8 Model绑定(下篇)
8.1 ModelBinder
8.1.1 ModelBindingContext
8.1.2 去除前缀后的二次绑定
8.1.3 CompositeModelBinder
8.2 ModelBinderProvider
8.2.1 CompositeModelBinderProvider
8.2.2 ModelBinderAttribute
8.2.3 Model绑定的流程
8.3 针对不同目标类型的Model绑定
8.3.1 简单类型
8.3.2 复杂类型
8.3.3 集合
8.3.4 数组
8.3.5 字典
8.3.6 最后一个ModelBinder
8.4 ModelState
8.4.1 ApiController的ModelState
8.4.2 实例演示:获取Model绑定过程中由ValueProvider提供的数据(S808)
0 条评论
下一页