《ASP.NET 3.5高级程序设计 第2版》PDF下载

  • 购买积分:29 如何计算积分?
  • 作  者:(美)Matthew MacDonald,(美)Mario Szpuszta著;博思工作室译
  • 出 版 社:北京:人民邮电出版社
  • 出版年份:2008
  • ISBN:9787115187710
  • 页数:1194 页
图书介绍:本书讲解了ASP.NET实际的工作原理;在讲解C#语言时,给出了从实践中得出的需要构建复杂、可扩展的网站的建议。本书还深入讲述了其他ASP.NET书籍遗漏的高级主题,如自定义控件的创建、图像处理、加密等。此外。本书专门提供了两章内容来教你如何用Ajax技术制作快速响应的页面,以及如何开发微软的下一代ASP.NET AJAX平台,为今后的Web开发做好最充分的准备。另外,还介绍了微软的下一代浏览器Silverlight 1.1。

第一部分 核心概念 2

第1章 ASP.NET简介 2

1.1 Web开发技术的演进 2

1.1.1 早期的Web开发 2

1.1.2 传统ASP的不足 3

1.1.3 ASP.NET 4

1.2 ASP.NET的7大要点 5

1.2.1 要点1:ASP.NET同.NET Framework集成在一起 5

1.2.2 要点2:ASP.NET是编译执行的,而不是解释执行的 5

1.2.3 要点3:ASP.NET具备多语言支持 7

1.2.4 要点4:ASP.NET运行在公共语言运行库内 9

1.2.5 要点5:ASP.NET是面向对象的 10

1.2.6 要点6:ASP.NET是跨设备和跨浏览器的 11

1.2.7 要点7:ASP.NET易于部署和配置 11

1 .3 ASP.NET 3.5:故事在继续 12

1.3.1 ASP.NET 2.0 12

1.3.2 ASP.NET 3.5 13

1.3.3 Silverlight 17

1.4 总结 17

第2章 Visual Studio 18

2.1 .NET开发模型 19

2.1.1 编译器 19

2.1.2 Visual Studio集成开发环境 19

2.1.3 网站和Web项目 20

2.1.4 创建无项目文件的网站 20

2.1.5 多目标 23

2.1.6 设计网页 24

2.2 Visual Studio集成开发环境 28

2.2.1 解决方案资源管理器 30

2.2.2 文档窗口 31

2.2.3 工具箱 31

2.2.4 错误列表和任务列表 32

2.2.5 服务器资源管理器 33

2.3 代码编辑器 34

2.3.1 添加程序集引用 35

2.3.2 智能感知和大纲显示 36

2.4 编码模型 38

2.4.1 代码隐藏文件如何与页面连接 40

2.4.2 控件标签如何与页面变量连接 41

2.4.3 事件如何与事件处理程序连接 42

2.5 Web项目 43

2.5.1 创建Web项目 45

2.5.2 迁移旧版Visual Studio创建的网站 46

2.6 Visual Studio调试 47

2.6.1 单步调试 48

2.6.2 变量监视 50

2.6.3 高级断点 51

2.7 Visual Studio宏 51

2.8 Web Development Helper 53

2.9 总结 54

第3章 Web窗体 55

3.1 页面处理 55

3.1.1 HTML表单 55

3.1.2 动态用户界面 57

3.1.3 ASP.NET事件模型 58

3.1.4 自动回送 58

3.1.5 视图状态 60

3.1.6 XHTML兼容性 63

3.2 Web窗体处理阶段 67

3.2.1 页面框架初始化 67

3.2.2 用户代码初始化 68

3.2.3 验证 68

3.2.4 事件处理 68

3.2.5 自动数据绑定 69

3.2.6 清除 69

3.2.7 页面流示例 70

3.3 作为控件容器的页面 72

3.3.1 显示控件树 72

3.3.2 页头 76

3.3.3 动态控件的创建 76

3.4 Page类 78

3.4.1 Session、Application和Cache 78

3.4.2 Request 79

3.4.3 Response 80

3.4.4 Server 81

3.4.5 User 83

3.4.6 Trace 84

3.4.7 访问其他类中的HTTP上下文 89

3.5 总结 89

第4章 服务器控件 90

4.1 服务器控件的类型 90

4.2 HTML服务器控件 92

4.2.1 HtmlControl类 93

4.2.2 HtmlContainerControl类 93

4.2.3 HtmlInputControl类 93

4.2.4 HTML服务器控件类 94

4.2.5 设置Style特性和其他属性 95

4.2.6 编程创建服务器控件 96

4.2.7 处理服务器端事件 97

4.3 Web控件 99

4.3.1 WebControl基类 100

4.3.2 基本的Web控件类 101

4.3.3 单位 102

4.3.4 枚举 102

4.3.5 颜色 103

4.3.6 字体 103

4.3.7 焦点 104

4.3.8 默认按钮 106

4.3.9 可滚动面板 106

4.3.10 处理Web控件事件 107

4.4 List控件 109

4.4.1 Selectable列表控件 110

4.4.2 BulletedList控件 112

4.5 输入验证控件 113

4.5.1 验证控件 113

4.5.2 验证流程 114

4.5.3 BaseValidator类 115

4.5.4 RequiredFieldValidator控件 116

4.5.5 RangeValidator控件 116

4.5.6 CompareValidator控件 117

4.5.7 RegularExpressionValidator控件 117

4.5.8 CustomValidator控件 119

4.5.9 ValidationSummary控件 120

4.5.10 通过编程使用验证器 121

4.5.11 验证组 122

4.6 富控件 124

4.6.1 AdRotator控件 125

4.6.2 Calendar控件 126

4.7 总结 128

第5章 ASP.NET应用程序 129

5.1 剖析ASP.NET应用程序 129

5.1.1 应用程序域 129

5.1.2 应用程序生命期 130

5.1.3 应用程序更新 131

5.1.4 应用程序目录结构 131

5.2 global.asax应用程序文件 132

5.2.1 应用程序事件 133

5.2.2 演示应用程序事件 135

5.3 ASP.NET配置 136

5.3.1 machine.config文件 136

5.3.2 web.config文件 139

5.3.3 〈system.web〉设置 142

5.3.4 通过编程读写配置节 145

5.3.5 网站管理工具(WAT) 148

5.3.6 扩展配置文件结构 149

5.3.7 加密配置节 153

5.4 .NET组件 154

5.4.1 创建组件 155

5.4.2 通过App_Code目录使用组件 156

5.4.3 通过Bin目录使用组件 157

5.5 扩展HTTP管道 159

5.5.1 HTTP处理程序和HTTP模块 159

5.5.2 创建自定义的HTTP处理程序 161

5.5.3 配置自定义的HTTP处理程序 161

5.5.4 不配置IIS的HTTP注册处理程序 163

5.5.5 创建高级的HTTP处理程序 164

5.5.6 为非HTML内容创建HTTP处理程序 165

5.5.7 创建自定义HTTP模块 168

5.6 总结 170

第6章 状态管理 171

6.1 ASP.NET状态管理 171

6.2 视图状态 173

6.2.1 视图状态示例 173

6.2.2 在视图状态中保存对象 175

6.2.3 保持成员变量 177

6.2.4 视图状态评估 178

6.2.5 视图状态安全 179

6.3 在页面间传送信息 180

6.3.1 查询字符串 180

6.3.2 跨页面发送 182

6.4 cookie 187

6.5 会话状态 188

6.5.1 会话架构 188

6.5.2 使用会话状态 190

6.5.3 配置会话状态 190

6.5.4 会话状态安全 195

6.6 应用程序状态 196

6.7 总结 199

第二部分 数据访问 202

第7章 ADO.NET基础 202

7.1 ADO.NET架构 203

7.1.1 ADO.NET数据提供程序 203

7.1.2 ADO.NET的标准化 204

7.1.3 SQL Server 2005 205

7.1.4 基本ADO.NET类 206

7.2 Connection类 206

7.2.1 连接字符串 207

7.2.2 测试连接 208

7.2.3 连接池 209

7.2.4 连接统计 210

7.3 Command类和DataReader类 211

7.3.1 Command基础 211

7.3.2 DataReader类 212

7.3.3 ExecuteReader()方法和DataReader 213

7.3.4 ExecuteScalar()方法 217

7.3.5 ExecuteNonQuery()方法 217

7.3.6 SQL注入攻击 218

7.3.7 使用参数化命令 220

7.3.8 调用存储过程 221

7.4 事务 224

7.4.1 事务和ASP.NET应用程序 224

7.4.2 隔离级别 228

7.4.3 保存点 229

7.5 提供程序无关的代码 230

7.5.1 创建工厂 230

7.5.2 用工厂创建对象 231

7.5.3 使用程序无关代码的查询 232

7.6 总结 233

第8章 数据组件和DataSet 234

8.1 构建数据访问组件 234

8.1.1 数据包 235

8.1.2 存储过程 236

8.1.3 数据应用类 237

8.1.4 测试数据库组件 242

8.2 非连接的数据 244

8.2.1 Web应用程序和DataSet 245

8.2.2 XML集成 246

8.3 DataSet类 246

8.4 DataAdapter类 247

8.4.1 填充DataSet 248

8.4.2 使用多个表和关系 249

8.4.3 查找特定行 252

8.4.4 在数据访问类里使用DataSet 252

8.4.5 数据绑定 253

8.5 DataView类 254

8.5.1 使用DataView排序 254

8.5.2 使用DataView过滤 256

8.5.3 使用关系的高级过滤 257

8.5.4 计算列 258

8.6 强类型DataSet 259

8.6.1 自定义TableAdapter 260

8.6.2 创建强类型数据集 261

8.6.3 深入强类型数据集 262

8.6.4 使用强类型数据集 264

8.7 总结 266

第9章 数据绑定 267

9.1 基本的数据绑定 267

9.1.1 单值绑定 268

9.1.2 其他类型的表达式 270

9.1.3 重复值绑定 273

9.2 数据源控件 279

9.3 SqlDataSource 280

9.3.1 选择记录 281

9.3.2 参数化命令 284

9.3.3 错误处理 287

9.3.4 更新记录 288

9.3.5 删除记录 291

9.3.6 插入记录 291

9.3.7 SqlDataSource的不足 292

9.4 ObjectDataSource 293

9.4.1 选择记录 293

9.4.2 更新记录 297

9.4.3 使用数据对象执行更新 298

9.5 数据源控件的限制 301

9.5.1 问题 301

9.5.2 添加其他项目 302

9.5.3 使用SqlDataSource处理其他选项 303

9.5.4 使用ObjectDataSource处理其他选项 303

9.6 总结 304

第10章 富数据控件 305

10.1 GridView 306

10.2 格式化GridView 309

10.2.1 格式化字段 309

10.2.2 样式 310

10.2.3 格式化特定值 313

10.3 GridView行选择 314

10.3.1 使用选择来创建主-从表单 315

10.3.2 SelectedIndexChanged事件 317

10.3.3 将数据字段用作选择按钮 317

10.4 对GridView排序 318

10.4.1 使用SqlDataSource排序 318

10.4.2 使用ObjectDataSource排序 319

10.4.3 排序和选择 320

10.4.4 高级排序 321

10.5 GridView分页 322

10.5.1 自动分页 322

10.5.2 ObjectDataSource的自定义分页 323

10.5.3 自定义分页栏 326

10.6 GridView模板 327

10.6.1 使用多个模板 329

10.6.2 在Visual Studio中编辑模板 329

10.6.3 绑定到方法 330

10.6.4 处理模板中的事件 331

10.6.5 使用模板编辑 332

10.7 ListView 337

10.7.1 分组 339

10.7.2 分页 341

10.8 DetailsView和FormView 342

10.8.1 DetailsView 342

10.8.2 FormView 344

10.9 高级网格 346

10.9.1 GridView中的汇总 346

10.9.2 单个表中的父/子视图 347

10.9.3 使用检查表编辑字段 349

10.9.4 处理来自数据库的图片 351

10.9.5 探测并发冲突 356

10.10 总结 360

第11章 缓存和异步页面 361

11.1 理解ASP.NET缓存 361

11.2 输出缓存 362

11.2.1 声明性的输出缓存 362

11.2.2 缓存和查询字符串 363

11.2.3 使用特定查询字符串参数的缓存 364

11.2.4 自定义缓存控制 364

11.2.5 使用HttpCachePolicy类进行缓存 366

11.2.6 缓存后替换和部分页缓存 366

11.2.7 缓存用户配置 368

11.2.8 缓存配置 369

11.3 数据缓存 370

11.3.1 向缓存添加项目 370

11.3.2 简单的缓存测试 372

11.3.3 缓存优先级 373

11.3.4 使用数据源控件的缓存 374

11.4 缓存依赖 376

11.4.1 文件和缓存项目依赖 376

11.4.2 聚合依赖 378

11.4.3 移除项目回调 378

11.4.4 理解SQL缓存通知 380

11.4.5 SQL Server 2000和SQL Server7中的缓存通知 381

11.4.6 SQL Server 2005和SQL Server2008中的缓存通知 385

11.5 自定义缓存依赖 387

11.5.1 基本的自定义缓存依赖 387

11.5.2 使用消息队列的自定义缓存依赖 388

11.6 异步页面 390

11.6.1 创建异步页面 391

11.6.2 在异步页面中查询数据 393

11.6.3 错误处理 394

11.6.4 在异步任务中使用缓存 397

11.6.5 多异步任务和超时 399

11.7 总结 400

第12章 文件和流 401

12.1 使用文件系统 401

12.1.1 Directory类和File类 401

12.1.2 DirectoryInfo类和FileInfo类 403

12.1.3 DriveInfo类 406

12.1.4 使用Attributes 406

12.1.5 使用通配符过滤文件 408

12.1.6 获取文件的版本信息 408

12.1.7 Path类 409

12.1.8 文件浏览器 411

12.2 使用流读写文件 415

12.2.1 文本文件 416

12.2.2 二进制文件 417

12.2.3 上传文件 418

12.2.4 使文件对多用户安全 420

12.2.5 压缩 424

12.3 序列化 425

12.4 总结 428

第13章 LINQ 429

13.1 LINQ基础 429

13.1.1 延迟执行 431

13.1.2 LINQ是如何工作的 431

13.1.3 LINQ表达式 432

13.1.4 揭秘LINQ表达式 438

13.2 LINQ to DataSet 440

13.2.1 强类型的DataSet 442

13.2.2 空值 443

13.3 LINQ to SQL 443

13.3.1 数据实体类 445

13.3.2 DataContext 446

13.3.3 揭秘LINQ to SQL查询 447

13.3.4 LINQ to SQL和数据库组件 449

13.3.5 选取单个记录或值 452

13.3.6 自动生成数据类 453

13.3.7 关系 458

13.3.8 为存储过程生成方法 464

13.3.9 提交变更 466

13.4 LinqDataSource 471

13.4.1 显示数据 472

13.4.2 获取关联数据 474

13.4.3 编辑数据 475

13.4.4 验证 475

13.5 总结 478

第14章 XML 479

14.1 什么时候使用XML 479

14.2 XML简介 480

14.2.1 XML的优点 481

14.2.2 格式良好的XML 481

14.2.3 XML命名空间 482

14.2.4 XML架构 483

14.3 基于流的XML处理 485

14.3.1 写XML文件 485

14.3.2 读XML文件 488

14.4 内存中的XML处理 490

14.4.1 XmlDoument 491

14.4.2 XPathNavigator 494

14.4.3 XDocument 496

14.5 搜索XML内容 500

14.5.1 搜索XmlDocument 501

14.5.2 使用XPath搜索XmlDocument 502

14.5.3 使用LINQ搜索XDocument 504

14.6 验证XML内容 506

14.6.1 基本架构 506

14.6.2 验证XmlDocument 506

14.6.3 使用XDocument进行验证 508

14.7 转换XML内容 508

14.7.1 基本的样式表 509

14.7.2 使用XslCompiledTransform 510

14.7.3 使用Xml控件 511

14.7.4 使用LINQ to XML转换XML 511

14.8 XML数据绑定 513

14.8.1 非层次化绑定 514

14.8.2 使用XPath 515

14.8.3 嵌套的网格 517

14.8.4 使用TreeView的层次化绑定 519

14.8.5 使用XSLT 520

14.8.6 绑定到来自其他源的XML内容 522

14.8.7 通过XmlDataSource更新XML 522

14.9 XML和ADO.NET数据集 523

14.9.1 把DataSet转换为XML 523

14.9.2 把DataSet作为XML访问 525

14.10 总结 526

第三部分 构建ASP.NET网站 528

第15章 用户控件 528

15.1 用户控件基础 528

15.1.1 创建简单的用户控件 529

15.1.2 把页面转换成用户控件 530

15.2 为用户控件添加代码 531

1 5.2.1 处理事件 531

15.2.2 添加属性 532

15.2.3 使用自定义对象 533

15.2.4 添加事件 536

15.2.5 暴露内部Web控件 538

15.3 动态加载用户控件 539

15.4 缓存部分页面 542

15.4.1 VaryByControl 543

15.4.2 共享缓存控件 544

15.5 总结 545

第16章 主题和母版页 546

16.1 层叠样式表 546

16.1.1 创建CSS 546

16.1.2 应用样式表规则 548

16.2 主题 550

16.2.1 主题文件夹和外观 551

16.2.2 应用简单主题 552

16.2.3 处理主题冲突 553

16.2.4 为控件创建多个外观 554

16.2.5 含有模板和图片的外观 555

16.2.6 在主题里使用CSS 556

16.2.7 通过配置文件来应用主题 557

16.2.8 动态应用主题 557

16.3 标准化网站布局 559

16.4 母版页基础 560

16.4.1 简单的母版页 560

16.4.2 简单的内容页 562

16.4.3 默认内容 563

16.4.4 具有表格和CSS布局的母版页 564

16.4.5 母版页和相对路径 566

16.4.6 通过配置文件应用母版页 567

16.5 高级母版页 567

16.5.1 和母版页类交互 567

16.5.2 动态设置母版页 569

16.5.3 嵌套母版页 569

16.6 总结 571

第17章 网站导航 572

17.1 多视图页面 572

17.1.1 MultiView控件 573

17.1.2 Wizard控件 576

17.2 站点地图 583

17.2.1 定义站点地图 583

17.2.2 绑定站点地图 585

17.2.3 导航路径 586

17.2.4 显示站点地图的一部分 587

17.2.5 站点地图对象 591

17.2.6 加入自定义站点地图信息 592

17.2.7 创建自定义的SiteMapProvider 592

17.2.8 URL映射 599

17.2.9 安全调整 599

17.3 TreeView控件 601

17.3.1 TreeNode 601

17.3.2 按需填充结点 604

17.3.3 TreeView样式 605

17.4 Menu控件 608

17.4.1 Menu样式 610

17.4.2 Menu模板 612

17.5 总结 613

第18章 网站部署 614

18.1 IIS 614

18.1.1 IIS站点和虚拟目录 615

18.1.2 IIS管理控制台和IIS配置 616

18.1.3 将网址、虚拟目录和文件映射到URL 617

18.1.4 深入IIS架构 618

18.1.5 安装IIS 630

18.2 管理网站 635

18.2.1 管理虚拟目录以及使用IIS 5.x和IIS 6.0的网站 636

18.2.2 管理IIS 6.0中的应用程序池 640

18.2.3 在IIS 7.0里管理虚拟目录和站点 645

18.2.4 在IIS 7.0里管理应用程序池 655

18.3 部署你的ASP.NET应用程序 657

18.3.1 在IIS 5.x和IIS 6.0上验证ASP.NET安装 658

18.3.2 在IIS 5.x和IIS 6.0上ASP.NET并行执行 659

18.3.3 在IIS 7.0里的ASP.NET并行执行 660

18.3.4 在IIS 5.x上部署时配置HTTP运行时设置 661

18.3.5 在ASP.NET中编译模型 661

18.3.6 使用Visual Studio进行部署 664

18.3.7 Visual Studio 2005 Web部署项目 665

18.4 ASP.NET中的VirtualPathProvider 670

18.5 ASP.NET里的健康监视 674

18.5.1 理解基本结构 674

18.5.2 事件和提供程序 675

18.6 总结 678

第四部分 安全 680

第19章 ASP.NET安全模型 680

19.1 何为创建安全软件 680

19.1.1 理解潜在的威胁 680

19.1.2 安全编程原则 681

19.1.3 理解Gatekeeper 682

19.2 理解安全级别 683

19.2.1 验证 683

19.2.2 授权 684

19.2.3 机密性和完整性 685

19.2.4 互相协作 686

19.3 IIS安全 687

19.3.1 IIS 5.x和IIS 6.0中的验证和授权 688

19.3.2 IIS 7.0的安全配置 690

19.3.3 理解SSL 694

19.4 ASP.NET安全架构 701

19.4.1 验证 702

19.4.2 授权 703

19.4.3 安全上下文 704

19.4.4 成员资格和Roles API 705

19.5 总结 706

第20章 表单验证 707

20.1 表单验证介绍 707

20.1.1 为什么使用表单验证 708

20.1.2 为什么不使用表单验证 709

20.1.3 为什么不自己实现cookie验证 710

20.1.4 表单验证类 711

20.2 实现表单验证 712

20.2.1 配置表单验证 712

20.2.2 禁止匿名用户访问 714

20.2.3 创建自定义登录页面 715

20.2.4 自定义凭证存储 720

20.2.5 表单验证中的持久cookie 721

20.3 IIS 7.0和表单验证 722

20.4 总结 727

第21章 成员资格 728

21.1 介绍ASP.NET的成员资格API 728

21.2 使用成员资格API 730

21.2.1 配置表单验证 731

21.2.2 创建数据存储 732

21.2.3 配置连接字符串和成员资格提供程序 737

21.2.4 创建并验证用户 740

21.3 使用安全控件 741

21.3.1 登录控件 742

21.3.2 登录状态控件 751

21.3.3 登录视图控件 752

21.3.4 恢复密码控件 753

21.3.5 修改密码控件 756

21.3.6 创建用户向导(CreateUser Wizard)控件 757

21.4 在IIS 7.0里配置成员资格 761

21.4.1 配置提供程序和用户 761

21.4.2 在其他应用程序里使用成员资格API 762

21.5 使用成员资格类 764

21.5.1 从存储中获得用户 765

21.5.2 更新存储中的用户 767

21.5.3 创建和删除用户 767

21.5.4 检验用户 768

21.5.5 在Windows窗体中使用成员资格 768

21.6 总结 770

第22章 Windows验证 771

22.1 介绍Windows验证 771

22.1.1 为什么使用Windows验证 771

22.1.2 为什么不使用Windows验证 772

22.1.3 Windows验证机制 773

22.2 实现Windows验证 778

22.2.1 配置IIS 5.x和IIS 6.0 779

22.2.2 配置IIS 7.0 780

22.2.3 配置ASP.NET 781

22.2.4 禁止匿名用户访问 784

22.2.5 访问Windows用户信息 785

22.3 身份模拟 790

22.3.1 在Windows 2000中执行身份模拟 791

22.3.2 在Windows XP上面执行身份模拟 791

22.3.3 在Windows Server 2003上运行身份模拟和委托 792

22.3.4 Windows Vista上的身份模拟 794

22.3.5 在Windows Server 2008上的身份模拟和代理 794

22.3.6 经过配置的身份模拟 795

22.3.7 可编程的身份模拟 797

22.4 总结 799

第23章 授权和角色 800

23.1 URL授权 800

23.2 文件授权 805

23.3 在代码中检查授权 806

23.3.1 使用IsInRole()方法 806

23.3.2 使用PrincipalPermission类 807

23.4 为基于角色的授权使用角色服务 809

23.4.1 和角色一起使用LoginView控件 814

23.4.2 通过程序访问角色 815

23.4.3 在Windows验证中使用角色服务 817

23.5 在IIS 5和IIS 6中保护非网页资源 819

23.5.1 添加一个文件类型的映射 819

23.5.2 写一个自定义的HTTP处理程序 820

23.6 IIS 7.0里的授权和角色 821

23.6.1 在IIS 7.0里使用ASP.NET角色授权 823

23.6.2 在IIS 7.0中管理ASP.NET角色 825

23.7 总结 827

第24章 用户配置 828

24.1 理解用户配置 828

24.1.1 用户配置的性能 828

24.1.2 用户配置如何存储数据 829

24.1.3 用户配置和验证 830

24.1.4 用户配置与自定义的数据组件 830

24.2 使用SqlProfileProvider 831

24.2.1 创建用户配置表 831

24.2.2 配置提供程序 833

24.2.3 定义用户配置属性 834

24.2.4 使用用户配置属性 834

24.2.5 用户配置序列化 836

24.2.6 用户配置组 837

24.2.7 用户配置和自定义的数据类型 838

24.2.8 用户配置API 841

24.2.9 匿名用户配置 843

24.3 自定义的用户配置提供程序 845

24.3.1 自定义的用户配置提供程序类 845

24.3.2 设计FactoredProfileProvider 847

24.3.3 编码实现FactoredProfileProvider 848

24.3.4 测试FactoredProfileProvider 851

24.4 总结 854

第25章 加密 855

25.1 加密数据:机密性问题 855

25.2 .NET加密命名空间 856

25.3 理解.NET加密类 859

25.3.1 对称加密算法 860

25.3.2 非对称加密 861

25.3.3 抽象加密类 861

25.3.4 ICryptoTransform接口 862

25.3.5 CryptoStream类 862

25.4 加密敏感数据 863

25.4.1 管理秘密信息 864

25.4.2 使用对称算法 865

25.4.3 使用非对称算法 869

25.4.4 加密数据库中的敏感数据 872

25.5 加密查询字符串 875

25.5.1 包装查询字符串 876

25.5.2 创建一个测试页面 878

25.6 总结 880

第26章 自定义成员资格提供程序 881

26.1 自定义提供程序的架构 881

26.2 创建自定义提供程序的基本步骤 883

26.2.1 自定义提供程序的总体设计 883

26.2.2 设计并实现自定义存储机制 884

26.2.3 实现提供程序类 891

26.2.4 使用自定义提供程序类 909

26.3 总结 913

第五部分 高级用户界面 916

第27章 自定义服务器控件 916

27.1 自定义服务器控件入门 916

27.1.1 创建简单的自定义控件 916

27.1.2 使用自定义控件 918

27.1.3 工具箱中的自定义控件 919

27.1.4 创建一个支持样式属性的Web控件 920

27.1.5 呈现过程 923

27.2 处理不同的浏览器 925

27.2.1 HtmlTextWriter 925

27.2.2 浏览器检测 926

27.2.3 浏览器属性 927

27.2.4 覆盖浏览器类型侦测 929

27.2.5 自适应呈现 930

27.3 控件状态和事件 931

27.3.1 视图状态 932

27.3.2 控件状态 933

27.3.3 回传数据和change事件 935

27.3.4 触发回传 937

27.4 扩展现有的Web控件 939

27.4.1 组合控件 939

27.4.2 派生控件 941

27.5 模板化控件 943

27.5.1 创建模板化控件 943

27.5.2 使用定制的模板 945

27.5.3 样式 949

27.6 总结 951

第28章 设计时支持 952

28.1 主要成员 952

28.2 设计时特性 953

28.2.1 Properties窗口 953

28.2.2 特性与继承 957

28.2.3 工具箱图标 957

28.3 Web资源 958

28.3.1 创建资源 958

28.3.2 获取资源 959

28.3.3 文本替换 959

28.4 代码序列化 960

28.4.1 类型转换器 960

28.4.2 序列化特性 967

28.4.3 类型编辑器 968

28.5 控件设计器 970

28.5.1 设计时HTML 971

28.5.2 智能标签 973

28.6 总结 977

第29章 动态图形和GDI+ 978

29.1 ImageMap控件 978

29.1.1 创建热点 979

29.1.2 处理热点单击 980

29.1.3 自定义热点 980

29.2 使用GDI+画图 982

29.2.1 简单绘制 983

29.2.2 图像格式和质量 984

29.2.3 Graphics类 985

29.2.4 使用GraphicsPath 987

29.2.5 画笔 988

29.2.6 画刷 990

29.3 在网页上嵌入动态图形 992

29.3.1 使用PNG格式 993

29.3.2 传递信息给动态图像 993

29.3.3 使用GDI+的自定义控件 996

29.4 用GDI+绘制图表 999

29.5 总结 1003

第30章 使用Web部件页面的门户 1004

30.1 典型门户页面 1004

30.2 初级Web部件页面 1006

30.2.1 创建页面设计 1006

30.2.2 WebPartManager和WebPartZone 1008

30.2.3 向页面添加Web部件 1009

30.2.4 定制页面 1012

30.3 创建Web部件 1014

30.3.1 简单的Web部件任务 1014

30.3.2 开发高级Web部件 1021

30.3.3 Web部件编辑器 1029

30.3.4 连接Web部件 1034

30.3.5 自定义动词和Web部件 1041

30.3.6 用户控件和高级Web部件 1042

30.3.7 动态上传Web部件 1044

30.3.8 针对Web部件的授权 1049

30.3.9 个性化的最后任务 1050

30.4 总结 1051

第六部分 客户端程序设计 1054

第31章 JavaScript和Ajax技术 1054

31.1 JavaScript本质 1054

31.1.1 HTML文档对象模型 1055

31.1.2 客户端事件 1055

31.1.3 脚本块 1057

31.1.4 操纵HTML元素 1058

31.1.5 调试JavaScript 1059

31.2 基本JavaScript示例 1061

31.2.1 创建JavaScript页面处理器 1061

31.2.2 使用JavaScript异步下载图片 1064

31.2.3 呈现脚本块 1068

31.3 脚本注入攻击 1069

31.3.1 请求验证 1070

31.3.2 禁用请求验证 1071

31.4 带有JavaScript的自定义控件 1072

31.4.1 弹出窗口 1072

31.4.2 滚动按钮 1075

31.5 框架 1078

31.5.1 框架导航 1078

31.5.2 内联框架 1080

31.6 理解Ajax 1081

31.6.1 XMLHttpRequest对象 1082

31.6.2 Ajax示例 1083

31.7 在客户端回调中使用Ajax 1087

31.7.1 创建客户端回调 1087

31.7.2 深入了解客户端回调 1092

31.7.3 自定义控件里的客户端回调 1093

31.8 总结 1096

第32章 ASP.NET AJAX 1097

32.1 介绍ASP.NET AJAX 1097

32.1.1 客户端的ASP.NET AJAX:脚本库 1098

32.1.2 服务器端的ASP.NET AJAX:ScriptManager 1099

32.2 服务器回调 1100

32.2.1 ASP.NET AJAX中的Web服务 1101

32.2.2 Web服务代理 1107

32.2.3 在页面里放置Web方法 1108

32.2.4 ASP.NET AJAX应用程序服务 1109

32.3 ASP.NET AJAX服务器控件 1115

32.3.1 使用UpdatePanel的局部呈现 1115

32.3.2 使用Timer的定时刷新 1121

32.3.3 使用UpdateProgress的长时间更新 1122

32.4 深入客户端库 1125

32.4.1 理解客户端模型 1125

32.4.2 JavaScript的面向对象编程 1126

32.4.3 Web-Page框架 1132

32.5 控件扩展器 1137

32.5.1 安装ASP.NET AJAX控件工具包 1137

32.5.2 AutoCompleteExtender 1138

32.5.3 ASP.NET AJAX控件工具包 1140

32.6 总结 1143

第33章 Silverlight 1144

33.1 理解Silverlight 1144

33.1.1 Silverlight与Flash 1145

33.1.2 应用Silverlight 1146

33.1.3 Silverlight和WPF 1147

33.1.4 安装Silverlight和Visual Studio扩展 1148

33.2 创建Silverlight项目 1149

33.2.1 HTML入口页面 1150

33.2.2 Silverlight初始化脚本 1150

33.2.3 XAML页面 1152

33.2.4 XAML代码隐藏页 1154

33.2.5 属性和事件 1155

33.2.6 编译Silverlight 1157

33.3 Silverlight本质 1157

33.3.1 Silverlight中的.NETFramework类 1158

33.3.2 Canvas 1159

33.3.3 文本 1163

33.3.4 和HTML交互 1164

33.3.5 隔离存储 1167

33.4 Silverlight和ASP.NET 1169

33.4.1 ASP.NET Futures 1169

33.4.2 Silverlight和ASP.NET之间的通信 1172

33.5 绘制二维图形 1172

33.5.1 简单形状 1173

33.5.2 路径和几何图形 1176

33.5.3 刷子 1182

33.5.4 透明度 1183

33.6 动画 1185

33.6.1 动画基础 1185

33.6.2 定义动画 1186

33.6.3 交互性动画示例 1189

33.6.4 变换 1191

33.7 总结 1194