自动化测试 元素高级定位方法

基于xpath的元素定位方法
1、绝对定位
‘/html/body/div[4]’ 这里的div[4]表示body下面的第四个div
2、相对定位

手写xpath方式定位
//*[@id=‘kw’] 基于属性id ,为kw来查找,xpath
//input[@name=‘accounts’] 查找input标签,name为accounts

文本内容定位
//em[text()=“阿斯大大”]/… 定位文本内容为阿斯大大的上一级元素

函数定位包含需定位内容即可
//input[contains(@id,‘k’)]匹配项模糊查找,包含id包含k
//input[contains(text(),‘k’)],文本包含k的input标签

相对路径定位,可以先定位子集元素再定位父级元素,父级元素用…/
//form[@action=‘http://.1324.html’]/div/input/…相对路径定位

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
目录 作者序 译者序 前 言 第一部分 第1章 安全漏洞发掘方法学 1.1 白盒测试 1.1.1 源代码评审 1.1.2 工具和自动化 1.1.3 优点和缺点 1.2 黑盒测试 1.2.1 人工测试 1.2.2 自动测试或模糊测试 1.2.3 优点和缺点 1.3 灰盒测试 1.3.1 二进制审核 1.3.2 自动化的二进制审核 1.3.3 优点和缺点 1.4 小结 1.5 脚注 第2章 什么是模糊测试 2.1 模糊测试的定义 2.2 模糊测试的历史 2.3 模糊测试阶段 2.4 模糊测试的局限性和期望 2.4.1 访问控制缺陷 2.4.2 设计逻辑不良 2.4.3 后门 2.4.4 内存破坏 2.4.5 多阶段安全漏洞 2.5 小结 第3章 模糊测试方法和模糊器类型 3.1 模糊测试方法 3.1.1 预先生成测试用例 3.1.2 随机方法 3.1.3 协议变异人工测试 3.1.4 变异或强制性测试 3.1.5 自动协议生成测试 3.2 模糊器类型 3.2.1 本地模糊器 3.2.2 远程模糊器 3.2.3 内存模糊器 3.2.4 模糊器框架 3.3 小结 第4章 数据表示和分析 4.1 什么是协议 4.2 协议域 4.3 简单文本协议 4.4 二进制协议 4.5 网络协议 4.6 文件格式 4.7 常见的协议元素 4.7.1 名字-值对 4.7.2 块标识符 4.7.3 块长度 4.7.4 校验和 4.8 小结 第5章 有效模糊测试的需求 5.1 可重现性和文档记录 5.2 可重用性 5.3 过程状态和过程深度 5.4 跟踪、代码覆盖和度量 5.5 错误检测 5.6 资源约束 5.7 小结 第二部分 第6章 自动化测试和测试数据生成 6.1 自动化测试的价值 6.2 有用的工具和库 6.2.1ETHEREAL /WIRESHARK 6.2.2LIBDASM 和LIBDISASM 6.2.3LIBNET /LIBNETNT 6.2.4LIBPCAP 6.2.5METRO PACKET LIBRARY 6.2.6PTRACE 6.2.7PYTHON EXTENSIONS 6.3 编程语言的选择 6.4 测试数据生成和模糊启发式 6.4.1 整型值 6.4.2 字符串重复 6.4.3 字段分隔符 6.4.4 格式化字符串 6.4.5 字符翻译 6.4.6 目录遍历 6.5 小结 第7章 环境变量和参数的模糊测试 7.1 本地化模糊测试介绍 7.1.1 命令行参数 7.1.2 环境变量 7.2 本地化模糊测试准则 7.3 寻找目标程序 7.4 本地化模糊测试方法 7.5 枚举环境变量 7.6 自动化的环境变量测试 7.7 检测问题 7.8 小结 第8章 环境变量和参数的模糊测试:自动化 8.1 iFUZZ本地化模糊器的特性 8.2 iFUZZ的开发 8.3 iFUZZ的开发语言 8.4 实例研究 8.5 益处和改进的余地 8.6 小结 第9章 Web应用程序和服务器模糊测试 9.1 什么是Web应用程序模糊测试 9.2 目标应用 9.3 测试方法 9.3.1 建立目标环境 9.3.2 输入 9.4 漏洞 9.5 异常检测 9.6 小结 第10章 Web应用程序和服务器的模糊测试:自动化 10.1 Web应用模糊器 10.2 WebFuzz的特性 10.2.1 请求 10.2.2 模糊变量 10.2.3 响应 10.3 必要的背景知识 10.3.1 识别请求 10.3.2 漏洞检测 10.4 WebFuzz的开发 10.4.1 开发方法 10.4.2 开发语言的选择 10.4.3 设计 10.5 实例研究 10.5.1 目录遍历 10.5.2 溢出 10.5.3 SQL注入 10.5.4 XSS脚本 10.6 益处和改进的余地 10.7 小结 第11章 文件格式模糊测试 11.1 目标应用 11.2 方法 11.2.1 强制性或基于变异的模糊测试 11.2.2 智能强制性或基于生成的模糊测试 11.3 输入 11.4 漏洞 11.4.1 拒绝服务 11.4.2 整数处理问题 11.4.3 简单的栈和堆溢出 11.4.4 逻辑错误 11.4.5 格式化字符串 11.4.6 竞争条件 11.5 漏洞检测 11.6 小结 第12章 文件格式模糊测试:UNIX平台上的自动化测试 12.1 NOTSPIKEFILE和SPIKEFILE 12.2 开发方法 12.2.1 异常检测引擎 12.2.2 异常报告(异常检测) 12.2.3 核心模糊测试引擎 12.3 有意义的代码片段 12.3.1 通常感兴趣的UNIX信号 12.3.2 不太感兴趣的UNIX信号 12.4 僵死进程 12.5 使用的注意事项 12.5.1 ADOBE ACROBAT 12.5.2 REALNETWORKS REALPLAYRE 12.6 实例研究:REALPLAYER REALPIX格式化字符串漏洞 12.7 语言 12.8 小结 第13章 文件格式模糊测试:Windows平台上的自动化测试 13.1 Windows文件格式漏洞 13.2 FileFuzz的特性 13.2.1 创建文件 13.2.2 应用程序执行 13.2.3 异常检测 13.2.4 保存的审核 13.3 必要的背景知识 13.4 FileFuzz的开发 13.4.1 开发方法 13.4.2 开发语言的选择 13.4.3 设计 13.5 实例研究 13.6益处和改进的余地 13.7 小结 第14章 网络协议模糊测试 14.1 什么是网络协议模糊测试 14.2 目标应用 14.2.1APPLEGATE 14.2.2 网络层 14.2.3 传输层 14.2.4 会话层 14.2.5 表示层 14.2.6 应用层 14.3 测试方法 14.3.1强制性或基于变异的模糊测试 14.3.2 智能强制性模糊测试和基于生成的模糊测试 14.3.3 修改的客户端变异模糊测试 14.4 错误检测 14.4.1 人工方法(基于调试器) 14.4.2 自动化方法(基于代理) 14.4.3 其它方法 14.5 小结 第15章 网络协议模糊测试:UNIX平台上的自动化测试 15.1 使用SPIKE进行模糊测试 15.1.1 选择测试目标 15.1.2 协议逆向工程 15.2 SPIKE 101 15.2.1 模糊测试引擎 15.2.2 通用的基于行的TCP模糊器 15.3 基于块的协议建模 15.4 SPIKE的额外特性 15.4.1 特定于协议的模糊器 15.4.2 特定于协议的模糊测试脚本 15.4.3 通用的基于脚本的模糊器 15.5 编SPIKE NMAP模糊器脚本 15.6 小结 第16章 网络协议模糊测试:Windows平台上的自动化测试 16.1 ProtoFuzz的特性 16.1.1 包结构 16.1.2 捕获数据 16.1.3 解析数据 16.1.4 模糊变量 16.1.5 发送数据 16.2 必要的背景知识 16.2.1 错误检测 16.2.2 协议驱动程序 16.3 ProtoFuzz的开发 16.3.1 开发语言的选择 16.3.2 包捕获库 16.3.3 设计 16.4 实例研究 16.5 益处和改进的余地 16.6 小结 第17章 Web浏览器模糊测试 17.1 什么是Web浏览器模糊测试 17.2 目标 17.3 方法 17.3.1 测试方法 17.3.2 输入 17.4 漏洞 17.5 错误检测 17.6 小结 第18章 Web浏览器的模糊测试:自动化 18.1 组件对象模型的背景知识 18.1.1 在Nutshell中的发展历史 18.1.2 对象和接口 18.1.3 ActiveX 18.2 模糊器的开发 18.2.1 枚举可加载的ActiveX控件 18.2.2 属性,方法,参数和类型 18.2.3 模糊测试和监视 18.3 小结 第19章 内存数据的模糊测试 19.1 内存数据模糊测试的概念及实施该测试的原因 19.2 必需的背景知识 19.3 究竟什么是内存数据模糊测试 19.4 目标 19.5 方法:变异循环插入 19.6 方法:快照恢复变异 19.7 测试速度和处理深度 19.8 错误检测 19.9 小结 第20章 内存数据的模糊测试:自动化 20.1 所需要的特性集 20.2 开发语言的选择 20.3 Windows调试API 20.4 将其整合在一起 20.4.1如何实现在特定点将"钩子"植入目标进程的需求 20.4.2如何来处理进程快照和恢复 20.4.3如何来选择植入钩子的点 20.4.4如何对目标内存空间进行定位和变异 20.5你的新的最好的朋友PYDBG 20.6 一个构想的示例 20.7 小结 第三部分 第21章 模糊测试框架 21.1 模糊测试框架的概念 21.2 现有框架 21.2.1 ANTIPARSER 21.2.2 DFUZ 21.2.3 SPIKE 21.2.4 PEACH 21.2.5 通用模糊器(General Purpose Fuzzer) 21.2.6 AUTODAF? 21.3 定制模糊器的实例研究:SHOCKWAVE FLASH 21.3.1 SWF文件的建模 21.3.2 生成有效的数据 21.3.3 对环境进行模糊测试 21.3.4 测试方法 21.4模糊测试框架SULLEY 21.4.1 SULLEY目录结构 21.4.2 数据表示 21.4.3 会话 21.4.4 21.4.5 一个完整的实例分析 21.5 小结 第22章 自动化协议解析 22.1 模糊测试存在的问题是什么 22.2 启发式技术 22.2.1 代理模糊测试 22.2.2 改进的代理模糊测试 22.2.3 反汇编启发式规则 22.3 生物信息学 22.4 遗传算法 22.5 小结 第23章 模糊器跟踪 23.1 我们究竟想要跟踪什么 23.2 二进制代码可视化和基本块 23.2.1 CFG 23.2.2 CFG示例 23.3 构造一个模糊器跟踪器 23.3.1 刻画目标特征 23.3.2 跟踪 23.3.3 交叉引用 23.4 对一个代码覆盖工具的分析 23.4.1 PSTALKER设计概览 23.4.2 数据源 23.4.3 数据探查 23.4.4 数据捕获 23.4.5局限性 23.4.6 数据存储 23.5 实例研究 23.5.1 测试策略 23.5.2 测试方法 23.6 益处和改进的余地 23.7 小结 第24章 智能故障检测 24.1 基本的错误检测方法 24.2 我们所要搜索的内容 24.3 选择模糊值时的注意事项 24.4 自动化的调试器监视 24.4.1 一个基本的调试器监视器 24.4.2 一个更加高级的调试器监视器 24.5 24.6 动态二进制插装 24.7 小结 第四部分 第25章 汲取的教训 25.1 软件开发生命周期 25.1.1 分析 25.1.2 设计 25.1.3 编码 25.1.4 测试 25.1.5 维护 25.1.6 在SDLC中实现模糊测试 25.2 开发者 25.3 QA研究者 25.4 安全问题研究者 25.5 小结 第26章 展望 26.1 商业工具 26.1.1 安全性测试工具beSTORM 26.1.2 BREAKINGPOINT系统BPS-1000 26.1.3 CODENOMICON 26.1.4 GLEG PROTOVER PROFESSIONAL 26.1.5 安全性测试工具MU-4000 26.1.6 SECURITY INNOVATION HOLODECK 26.2 发现漏洞的混合方法 26.3 集成的测试平台 26.4 小结
目录 序 1 前言 3 第1章 绪论 13 1.1 什么是安全测试 13 1.2 什么是Web应用 17 1.3 Web应用基础 21 1.4 Web应用安全测试 25 1.5 方法才是重点 26 第2章 安装免费工具 29 2.1 安装Firefox 29 2.2 安装Firefox扩展 30 2.3 安装Firebug 31 2.4 安装OWASP的WebScarab 32 2.5 在Windows上安装Perl及其软件包 33 2.6 在Linux, Unix或OS X上安装Perl和使用CPAN 34 2.7 安装CAL9000 35 2.8 安装ViewState Decoder 36 2.9 安装cURL 36 2.10 安装Pornzilla 37 2.11 安装Cygwin 38 2.12 安装Nikto 2 39 2.13 安装Burp Suite 40 2.14 安装Apache HTTP Server 41 第3章 基本观察 43 3.1 查看网页的HTML源代码 44 3.2 查看源代码,高级功能 45 3.3 使用Firebug观察实时的请求头 48 3.4 使用WebScarab观察实时的POST数据 52 3.5 查看隐藏表单域 55 3.6 使用TamperData观察实时的响应头 56 3.7 高亮显示JavaScript和注释 59 3.8 检测JavaScript事件 60 3.9 修改特定的元素属性 61 3.10 动态跟踪元素属性 63 3.11 结论 65 第4章 面向Web的数据编码 66 4.1 辨别二进制数据表示 67 4.2 使用Base-64 69 4.3 在网页中转换Base-36数字 71 4.4 在Perl中使用Base-36 71 4.5 使用以URL方式编码的数据 72 4.6 使用HTML实体数据 74 4.7 计算散列值 76 4.8 辨别时间格式 78 4.9 以编程方式对时间值进行编码 80 4.10 解码ASP.NET的视图状态 81 4.11 解码多重编码 83 第5章 篡改输入 85 5.1 截获和修改POST请求 86 5.2 绕过输入限制 89 5.3 篡改URL 90 5.4 自动篡改URL 93 5.5 测试对URL长度的处理 94 5.6 编辑Cookie 96 5.7 伪造浏览器头信息 99 5.8 上传带有恶意文件名的文件 101 5.9 上传大文件 104 5.10 上传恶意XML实体文件 105 5.11 上传恶意XML结构 107 5.12 上传恶意ZIP文件 109 5.13 上传样例病毒文件 110 5.14 绕过用户界面的限制 111 第6章 自动化批量扫描 114 6.1 使用WebScarab爬行网站 115 6.2 将爬行结果转换为清单 117 6.3 减少要测试的URL 120 6.4 使用电子表格程序来精简列表 120 6.5 使用LWP对网站做镜像 121 6.6 使用wget对网站做镜像 123 6.7 使用wget对特定的清单做镜像 124 6.8 使用Nikto扫描网站 125 6.9 理解Nikto的输出结果 127 6.10 使用Nikto扫描HTTPS站点 128 6.11 使用带身份验证的Nikto 129 6.12 在特定起始点启动Nikto 130 6.13 在Nikto中使用特定的会话Cookie 131 6.14 使用WSFuzzer测试Web服务 132 6.15 理解WSFuzzer的输出结果 134 第7章 使用cURL实现特定任务的自动化 137 7.1 使用cURL获取页面 138 7.2 获取URL的许多变体 139 7.3 自动跟踪重定向 140 7.4 使用cURL检查跨站式脚本 141 7.5 使用cURL检查目录遍历 144 7.6 冒充特定类型的网页浏览器或设备 147 7.7 以交互方式冒充另一种设备 149 7.8 使用cURL模仿搜索引擎 151 7.9 通过假造Referer头信息来伪造工作流程 152 7.10 仅获取HTTP头 153 7.11 使用cURL发送POST请求 154 7.12 保持会话状态 156 7.13 操纵Cookie 157 7.14 使用cURL上传文件 158 7.15 建立多级测试用例 159 7.16 结论 164 第8章 使用LibWWWPerl实现自动化 166 8.1 编简单的Perl脚本来获取页面 167 8.2 以编程方式更改参数 169 8.3 使用POST模仿表单输入 170 8.4 捕获和保存Cookie 172 8.5 检查会话过期 173 8.6 测试会话固定 175 8.7 发送恶意Cookie值 177 8.8 上传恶意文件内容 179 8.9 上传带有恶意名称的文件 181 8.10 上传病毒到应用 182 8.11 使用Perl解析接收到的值 184 8.12 以编程方式来编辑页面 186 8.13 使用线程化提高性能 189 第9章 查找设计缺陷 191 9.1 绕过必需的导航 192 9.2 尝试特权操作 194 9.3 滥用密码恢复 195 9.4 滥用可预测的标识符 197 9.5 预测凭证 199 9.6 找出应用中的随机数 200 9.7 测试随机数 202 9.8 滥用可重复性 204 9.9 滥用高负载操作 206 9.10 滥用限制性的功能 208 9.11 滥用竞争条件 209 第10章 攻击AJAX 211 10.1 观察实时的AJAX请求 213 10.2 识别应用中的JavaScript 214 10.3 从AJAX活动回溯到源代码 215 10.4 截获和修改AJAX请求 216 10.5 截获和修改服务器响应 218 10.6 使用注入数据破坏AJAX 220 10.7 使用注入XML破坏AJAX 222 10.8 使用注入JSON破坏AJAX 223 10.9 破坏客户端状态 224 10.10 检查跨域访问 226 10.11 通过JSON劫持来读取私有数据 227 第11章 操纵会话 229 11.1 在Cookie中查找会话标识符 230 11.2 在请求中查找会话标识符 232 11.3 查找Authentication头 233 11.4 分析会话ID过期 235 11.5 使用Burp分析会话标识符 239 11.6 使用WebScarab分析会话随机性 240 11.7 更改会话以逃避限制 245 11.8 假扮其他用户 247 11.9 固定会话 248 11.10 测试跨站请求伪造 249 第12章 多层面的测试 251 12.1 使用XSS窃取Cookie 251 12.2 使用XSS创建覆盖 253 12.3 使用XSS产生HTTP请求 255 12.4 以交互方式尝试基于DOM的XSS 256 12.5 绕过字段长度限制(XSS) 258 12.6 以交互方式尝试跨站式跟踪 259 12.7 修改Host头 261 12.8 暴力猜测用户名和密码 263 12.9 以交互方式尝试PHP包含文件注入 265 12.10 制作解压缩炸弹 266 12.11 以交互方式尝试命令注入 268 12.12 系统地尝试命令注入 270 12.13 以交互方式尝试XPath注入 273 12.14 以交互方式尝试服务器端包含(SSI)注入 275 12.15 系统地尝试服务器端包含(SSI)注入 276 12.16 以交互方式尝试LDAP注入 278 12.17 以交互方式尝试日志注入 280
《asp.net mvc 3高级编程》 第1章 入门 1 1.1 asp.net mvc简介 1 1.1.1 asp.net mvc如何适应asp.net 1 1.1.2 mvc模式简介 2 1.1.3 mvc在web框架中的应用 2 1.1.4 asp.net mvc 3的发展历程 3 1.1.5 razor视图引擎 5 1.1.6 验证的改善 8 1.1.7 强大的javascript支持 9 1.1.8 高级功能 9 1.1.9 asp.net mvc 3特性总结 10 1.2 创建asp.net mvc 3应用程序 10 1.2.1 创建asp.net mvc 3应用程序的软件要求 11 1.2.2 安装asp.net mvc 3 11 1.2.3 创建asp.net mvc 3应用程序 12 1.2.4 new asp.net mvc 3 project对话框 13 1.3 asp.net mvc应用程序的结构 17 1.4 小结 20 第2章 控制器 21 .2.1 控制器的角色 21 2.2 控制器简史 22 2.3 示例应用程序:mvc music store 23 2.4 控制器基础 26 2.4.1 简单示例:home controller 26 2.4.2 创建第一个(非常简单的)控制器 29 2.4.3 控制器操作中的参数 31 2.5 小结 33 第3章 视图 35 3.1 视图的作用 36 3.2 指定视图 38 3.3 强类型视图 39 3.4 视图模型 41 3.5 添加视图 42 3.5.1 add view对话框中的选项 42 3.5.2 自定义t4视图模板 45 3.6 razor视图引擎 46 3.6.1 razor的概念 46 3.6.2 代码表达式 48 3.6.3 html编码 50 3.6.4 代码块 51 3.6.5 razor语法示例 52 3.6.6 布局 54 3.6.7 viewstart 56 3.7 指定分部视图 57 3.8 视图引擎 58 3.8.1 配置视图引擎 58 3.8.2 查找视图 59 3.8.3 视图本身 60 3.8.4 其他的视图引擎 61 3.9 新的视图引擎还是新的actionresult 62 3.10 小结 63 第4章 模型 65 4.1 为mvc music store建模 65 4.2 为商店管理器构造基架 68 4.2.1 基架的概念 68 4.2.2 基架和实体框架 69 4.2.3 执行基架模板 71 4.2.4 执行基架代码 75 4.3 编辑专辑 78 4.3.1 创建编辑专辑的资源 79 4.3.2 响应编辑时的post请求 81 4.4 模型绑定 83 4.4.1 defaultmodelbinder 84 4.4.2 模型绑定安全性简介 85 4.4.3 显式模型绑定 85 4.5 小结 86 第5章 表单和html辅助方法 89 5.1 表单的使用 89 5.1.1 action和method特性 90 5.1.2 get方法还是post方法 90 5.2 html辅助方法 94 5.2.1 自动编码 95 5.2.2 辅助方法的使用 95 5.2.3 html辅助方法的工作原理 96 5.2.4 设置专辑编辑表单 97 5.2.5 添加输入元素 98 5.2.6 辅助方法、模型和视图数据 102 5.2.7 强类型辅助方法 104 5.2.8 辅助方法和模型元数据 105 5.2.9 模板辅助方法 105 5.2.10 辅助方法和modelstate 106 5.3 其他输入辅助方法 107 5.3.1 html.hidden 107 5.3.2 html.password 107 5.3.3 html.radiobutton 107 5.3.4 html.checkbox 108 5.4 渲染辅助方法 108 5.4.1 html.actionlink和html.routelink 109 5.4.2 url辅助方法 110 5.4.3 html.partial和html.renderpartial 110 5.4.4 html.action和html.renderaction 111 5.5 小结 113 第6章 数据注解和验证 115 6.1 为验证注解订单 116 6.1.1 验证注解的使用 117 6.1.2 自定义错误提示消息及其本地化 121 6.1.3 注解的后台原理 122 6.1.4 控制器操作和验证错误 123 6.2 自定义验证逻辑 125 6.2.1 自定义注解 125 6.2.2 ivalidatableobject 128 6.3 显示和编辑注解 129 6.3.1 display 130 6.3.2 scaffoldcolumn 130 6.3.3 displayformat 131 6.3.4 readonly 131 6.3.5 datatype 132 6.3.6 uihint 132 6.3.7 hiddeninput 132 6.4 小结 132 第7章 应用程序的安全性 133 7.1 使用authorize特性登录 135 7.1.1 保护控制器操作 135 7.1.2 authorize特性在表单身份验证、accountcontroller控制器中的用法 139 7.1.3 intranet application模板中的windows authentication 141 7.1.4 整个控制器的安全性 141 7.2 要求角色成员使用authorize特性 142 7.3 扩展角色和成员 143 7.4 web应用程序中的安全向量 143 7.4.1 威胁:跨站脚本 144 7.4.2 威胁:跨站请求伪造 154 7.4.3 威胁:cookie盗窃 158 7.4.4 威胁:重复提交 160 7.4.5 威胁:开放重定向 162 7.5 适当的错误报告和堆栈跟踪 170 7.5.1 使用配置转换 171 7.5.2 使用retail部署配置 172 7.5.3 使用专门的错误日志系统 172 7.6 安全回顾和有用资源 172 7.7 小结 173 第8章 ajax 175 8.1 jquery 175 8.1.1 jquery的特性 176 8.1.2 非侵入式javascript 179 8.1.3 jquery的用法 180 8.2 ajax辅助方法 183 8.2.1 ajax的actionlink方法 183 8.2.2 html 5特性 185 8.2.3 ajax表单 186 8.3 客户端验证 188 8.3.1 jquery验证 189 8.3.2 自定义验证 190 8.4 辅助方法之外 194 8.4.1 jquery ui 194 8.4.2 使用jquery ui实现自动完成部件 195 8.4.3 json和jquery模板 199 8.5 提高ajax性能 204 8.5.1 使用内容分发网络 204 8.5.2 脚本优化 204 8.6 小结 205 第9章 路由机制 207 9.1 理解url 208 9.2 路由机制概述 209 9.2.1 对比路由和url重 209 9.2.2 路由的定义 209 9.2.3 命名路由 217 9.2.4 mvc区域 219 9.2.5 catch-all参数 220 9.2.6 段中的多个url参数 221 9.2.7 stoproutinghandler和ignoreroute 222 9.2.8 路由的调试 223 9.2.9 揭秘路由如何生成url 224 9.3 揭秘路由如何绑定到操作 230 9.3.1 高层次请求的路由管道 230 9.3.2 路由数据 230 9.4 自定义路由约束 231 9.5 web forms和路由机制 232 9.6 小结 233 第10章 nuget 235 10.1 nuget概述 235 10.2 nuget安装 236 10.3 以包的形式添加库 238 10.3.1 查找包 239 10.3.2 安装包 240 10.3.3 更新包 242 10.3.4 最近使用的包 243 10.4 创建包 245 10.4.1 文件夹结构 246 10.4.2 nuspec文件 246 10.4.3 元数据 247 10.4.4 依赖库 248 10.4.5 指定要包含的文件 249 10.4.6 工具 249 10.4.7 框架和轮廓定位 252 10.5 发布包 253 10.5.1 发布到nuget.org 253 10.5.2 使用nuget.exe发布包 256 10.5.3 包浏览器的用法 257 10.5.4 托管私有的nuget供应库 258 10.6 小结 261 第11章 依赖注入 263 11.1 软件设计模式概述 263 11.1.1 设计模式—— 控制反转模式 264 11.1.2 设计模式—— 服务定位器 266 11.1.3 设计模式—— 依赖注入 270 11.2 依赖解析器的用法 272 11.2.1 单一注册服务 274 11.2.2 复合注册服务 275 11.2.3 创建任意对象 278 11.3 小结 280 第12章 单元测试 281 12.1 单元测试和测试驱动开发的意义 282 12.1.1 单元测试的定义 282 12.1.2 测试驱动开发的定义 283 12.2 创建单元测试项目 286 12.2.1 检查默认单元测试 287 12.2.2 只测试自己编的代码 290 12.3 单元测试用于asp.net mvc应用程序的技巧和窍门 291 12.3.1 控制器测试 291 12.3.2 路由测试 296 12.3.3 验证测试 298 12.4 小结 302 第13章 扩展asp.net mvc 303 13.1 模型扩展 304 13.1.1 把请求数据转化为模型 304 13.1.2 用元数据描述模型 309 13.1.3 验证模型 312 13.2 视图扩展 315 13.2.1 自定义视图引擎 315 13.2.2 编html辅助方法 317 13.2.3 编razor辅助方法 319 13.3 控制器扩展 319 13.3.1 操作选择 319 13.3.2 操作过滤器 321 13.3.3 提供自定义结果 323 13.4 小结 324 第14章 高级主题 325 14.1 高级razor 325 14.1.1 模板化的razor委托 325 14.1.2 视图编译 326 14.2 高级基架 328 14.2.1 自定义t4代码模板 328 14.2.2 nuget包mvcscaffolding 329 14.2.3 更新的add controller对话框选项 329 14.2.4 使用库模板 330 14.2.5 添加基架器 332 14.2.6 额外资源 332 14.3 高级路由 332 14.3.1 routemagic 332 14.3.2 可编辑的路由 333 14.4 模板 337 14.4.1 默认模板 338 14.4.2 自定义模板 342 14.5 高级控制器 344 14.5.1 定义控制器:icontroller接口 344 14.5.2 controllerbase抽象基类 346 14.5.3 控制器类和操作 346 14.5.4 actionresult 351 14.5.5 操作调用器 359 14.5.6 使用异步控制器操作 362 14.6 小结 370

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值