ASP.NET 4揭秘.卷2

2012 年 9 月 30 日6120

内容简介

书籍
计算机书籍
  《asp.net 4揭秘.2》是讲解微软asp.net 4 的经典著作,涵盖了asp.net 4 的方方面面,包括了各种最新的特性。本书作者stephen walther 是asp 界的名人,微软公司的asp.net mvp,荣获微软“软件传奇人物”称号。全书分为两,本卷主要介绍高级的asp.net 4 知识,内容包括安全、创建asp.net 应用程序、创建自定义控件和客户端ajax 等。

  
《asp.net 4揭秘.卷2》适合各层次asp.net 开发人员阅读。

作译者

  Stephen Walther 蜚声世界的ASP.NET专家,现为微软公司ASP.NET小组资深程序经理。多次荣获微软最有价值专家(MVP)称号,并荣获微软公司社区最高技术荣誉“微软传奇人物”称号。他开发的微软ASP.NET示范性应用程序ASP.NET Community Starter Kit,麻省理工学院、斯坦福大学和哈佛大学等200多所大学使用的Collegescape应用程序,以及拍卖网站www.cityauction.com等,都已经成为经典。本书为其代表著作。
Kevin Hoffman Exclaim Computing公司的首席系统架构师,负责为各行业客户构建自定义架构.. <<

目录

《asp.net 4揭秘.卷2》

第一部分 安 全

第1章 使用login控件 2

1.1 login控件概览 3

1.2 使用login控件 6

1.2.1 自动重定向用户到来源页面 8

1.2.2 自动隐藏已验证用户的login控件 8

1.2.3 使用模板定制login控件 10

1.2.4 使用login控件执行自定义身份验证 12

1.3 使用createuserwizard控件 14

1.3.1 配置自定义用户表单字段 16

1.3.2 发送已创建用户电子邮件通知 17

1.3.3 用户自动重定向来源页面 20

1.3.4 自动生成密码 21

1.3.5 在createuserwizard控件中使用模板 26

1.3.6 在createuserwizard控件中添加注册步骤 29

1.4 使用loginstatus控件 31

1.5 使用loginname控件 32

1.6 使用changepassword控件 34

1.6.1 发送电子邮件通知密码更改 35

.1.6.2 在changepassword控件中使用模板 36

1.7 使用passwordrecovery控件 39

1.7.1 找回用户的原始密码 40

1.7.2 要求安全提示问题和答案 41

1.7.3 在passwordrecovery控件中使用模板 42

1.8 使用loginview控件 44

1.9 小结 47

第2章 使用asp.net membership 48

2.1 配置身份验证 48

2.1.1 配置forms身份验证 50

2.1.2 使用无cookie的forms身份验证 51

2.1.3 在forms身份验证中使用相对超时限制 52

2.1.4 跨应用程序使用forms身份验证 52

2.1.5 跨域使用forms身份验证 55

2.1.6 使用formsauthentication类 56

2.1.7 使用user类 60

2.2 配置安全授权 60

2.2.1 角色授权 62

2.2.2 根据位置授权访问文件 62

2.2.3 对图片以及其他文件类型进行访问授权 63

2.3 使用asp.net membership 64

2.3.1 使用membership api 65

2.3.2 加密和散列用户密码 68

2.3.3 修改用户密码条件 70

2.3.4 锁定坏用户 71

2.3.5 配置sqlmembershipprovider提供程序 73

2.3.6 配置activedirectorymember-shipprovider 74

2.3.7 创建自定义membership提供程序 78

2.4 使用角色管理器 80

2.4.1 配置sqlroleprovider 80

2.4.2 配置windowstokenrole-provider 85

2.4.3 配置authorizationstorerole-provider 86

2.4.4 在浏览器cookie中缓存角色 88

2.4.5 使用roles api 89

2.5 小结 91

第二部分 创建asp.net应用程序

第3章 维护应用程序状态 94

3.1 使用浏览器cookie 94

3.1.1 cookie的安全性限制 95

3.1.2 创建cookie 96

3.1.3 读取cookie 98

3.1.4 设置cookie属性 100

3.1.5 删除cookie 101

3.1.6 使用多值cookie 103

3.2 使用session状态 105

3.2.1 在session状态中保存数据库数据 107

3.2.2 使用session对象 109

3.2.3 处理session事件 110

3.2.4 会话失效控制 112

3.2.5 使用无cookie的session状态 112

3.2.6 配置session状态存储 114

3.2.7 配置sql server session状态 116

3.3 使用用户配置文件 119

3.3.1 创建用户配置文件组 122

3.3.2 支持匿名用户 123

3.3.3 合并匿名用户配置文件 126

3.3.4 从自定义类继承profile 126

3.3.5 创建复杂profile属性 128

3.3.6 自动保存用户配置 133

3.3.7 从组件访问用户配置 136

3.3.8 使用配置文件管理器 138

3.3.9 配置用户配置提供程序 140

3.3.10 创建自定义用户配置提供程序 141

3.4 小结 145

第4章 缓存应用程序页面和数据 146

4.1 缓存概览 146

4.2 使用页面输出缓存 147

4.2.1 使用参数改变输出缓存 148

4.2.2 基于控件变化的输出缓存 151

4.2.3 基于头变化的输出缓存 153

4.2.4 基于浏览器变化的输出缓存 154

4.2.5 基于自定义函数变化的输出缓存 154

4.2.6 设置缓存位置 156

4.2.7 创建页面输出缓存文件依赖 157

4.2.8 使用编程方式设置页面输出缓存过期 159

4.2.9 以编程方式操作页面输出缓存 163

4.2.10 创建页面输出缓存配置 164

4.3 使用部分页面缓存 165

4.3.1 使用缓存后替换 165

4.3.2 用户控件缓存 169

4.3.3 共享用户控件的输出缓存 171

4.3.4 以编程方式处理用户控件缓存 172

4.3.5 创建用户控件缓存的文件依赖 172

4.3.6 缓存动态载入的用户控件 174

4.4 使用数据源缓存 175

4.4.1 使用绝对缓存过期策略 176

4.4.2 使用弹性缓存过期策略 177

4.4.3 使用objectdatasource控件缓存 179

4.4.4 使用xmldatasource控件缓存 180

4.4.5 创建datasource控件键依赖 181

4.5 使用数据缓存 184

4.5.1 使用缓存api 184

4.5.2 添加项目到缓存 186

4.5.3 使用绝对过期策略添加项目 186

4.5.4 使用弹性过期策略添加项目到缓存 188

4.5.5 使用依赖添加项目 189

4.5.6 指定缓存项目优先级 191

4.5.7 配置缓存 191

4.6 使用sql缓存依赖 193

4.6.1 使用轮询sql缓存依赖 193

4.6.2 配置轮询sql缓存依赖 194

4.6.3 对页面输出缓存使用轮询sql缓存依赖 195

4.6.4 对数据源缓存使用轮询sql缓存依赖 197

4.6.5 对数据缓存使用轮询sql缓存依赖 198

4.6.6 使用推sql缓存依赖 199

4.6.7 配置推sql缓存依赖 200

4.6.8 对页面输出缓存使用推sql缓存依赖 201

4.6.9 对数据源缓存使用推sql缓存依赖 203

4.6.10 对数据缓存使用推sql缓存依赖 205

4.7 小结 206

第5章 多语言本地化应用程序 207

5.1 设置当前文化 207

5.1.1 手动设置文化 208

5.1.2 自动检测文化 214

5.1.3 在web配置文件中设置文化 217

5.1.4 文化和asp.net控件 218

5.2 使用cultureinfo类 219

5.2.1 使用cultureinfo类格式化字符串值 219

5.2.2 比较和排序字符串值 221

5.3 创建本地资源 221

5.3.1 显式本地化表达式 222

5.3.2 隐式本地化表达式 224

5.3.3 对页面属性使用本地化资源 226

5.3.4 以编程方式获取本地资源 227

5.4 创建全局资源 228

5.4.1 以编程方式获取全局资源 230

5.4.2 使用强类型本地化表达式 231

5.5 使用localize控件 232

5.6 小结 233

第6章 使用http运行库 234

6.1 创建自定义buildprovider 234

6.1.1 创建简单的buildprovider 235

6.1.2 创建数据访问组件build-provider 238

6.2 创建自定义expressionbuilder 243

6.3 创建http处理程序 247

6.3.1 创建一般处理程序 247

6.3.2 实现ihttphandler接口 250

6.3.3 创建异步http处理程序 254

6.4 使用http应用程序和http模块 257

6.4.1 创建global.asax文件 258

6.4.2 创建自定义http模块 260

6.5 小结 262

第7章 创建动态数据应用 263

7.1 asp.net动态数据介绍 263

7.2 创建动态数据应用 264

7.3 使用动态数据模板 267

7.3.1 修改共享模板 267

7.3.2 创建类型和实体特定的模板 268

7.4 小结 270

第8章 创建asp.net mvc应用 271

8.1 asp.net mvc框架介绍 271

8.1.1 模型 271

8.1.2 视图 272

8.1.3 控制器 272

8.2 创建你的第一个asp.net mvc应用 272

8.3 创建mvc页面 274

8.4 接受窗体输入 276

8.5 小结 277

第9章 配置应用程序 278

9.1 网站配置概览 278

9.1.1 使用web站点管理工具 279

9.1.2 使用asp.net的mmc嵌入式管理单元 280

9.1.3 asp.net配置节 281

9.1.4 把配置设置应用到特定路径 282

9.1.5 锁定配置文件 283

9.1.6 添加自定义应用程序设置 285

9.1.7 将配置设置放到外部文件 286

9.2 使用配置api 287

9.2.1 从当前应用程序读取配置节 288

9.2.2 打开配置文件 291

9.2.3 打开远程服务器上的配置文件 294

9.2.4 使用configuration类 296

9.2.5 修改配置节 299

9.2.6 准备创建新的网站 301

9.3 创建自定义配置节 304

9.4 创建加密的配置节 312

9.4.1 使用aspnet_regiis工具加密配置节 313

9.4.2 以编程方式加密配置节 313

9.4.3 部署加密的web配置文件 316

9.5 小结 318

第10章 部署asp.net web应用 319

10.1 打包web应用 319

10.2 使用web.config转换 322

10.3 部署数据库 323

10.4 一键式发布web应用 324

10.5 小结 326

第三部分 构建自定义控件

第11章 构建自定义控件 328

11.1 构建自定义控件概述 328

11.1.1 构建完全生成控件 329

11.1.2 构建组合控件 337

11.1.3 构建混合控件 339

11.2 视图状态和控件状态 344

11.2.1 支持视图状态 344

11.2.2 支持控件状态 346

11.3 处理回传数据和事件 349

11.3.1 处理回传数据 349

11.3.2 处理回传事件 352

11.4 使用控件属性集合 361

11.4.1 使用parsechildren特性 361

11.4.2 使用addparsedsubobject()方法 367

11.4.3 使用controlbuilder 367

11.5 构建更好的设计器体验 371

11.5.1 给控件应用设计时特性 371

11.5.2 创建控件设计器 374

11.5.3 创建containercontrol-designer 374

11.5.4 添加智能标签 377

11.6 小结 381

第12章 创建模板化数据绑定控件 382

12.1 创建模板化控件 382

12.1.1 实现itemplate接口 382

12.1.2 创建默认模板 385

12.1.3 支持简化的数据绑定 389

12.1.4 支持双向数据绑定 392

12.2 创建模板化数据绑定控件 396

12.3 小结 401

第四部分 asp.net ajax

第13章 使用服务器端asp.net ajax 404

13.1 ajax概况 404

13.2 服务器端ajax与客户端ajax 405

13.3 调试ajax应用 406

13.4 使用updatepanel控件 407

13.4.1 指定updatepanel触发器 414

13.4.2 嵌套的updatepanel控件 415

13.4.3 以编程方式更新update-panel 419

13.4.4 updatepanel与javascript 421

13.4.5 updatepanel服务器端页面执行生命周期 423

13.4.6 updatepanel客户端页面执行生命周期 425

13.4.7 取消当前异步回传 430

13.4.8 中断上一个异步回传 432

13.4.9 在一次异步回传中传递额外的信息 434

13.4.10 优雅地处理updatepanel错误 436

13.4.11 updatepanel的性能 440

13.5 使用timer控件 443

13.6 使用updateprogress控件 446

13.7 小结 448

第14章 使用asp.net ajax control toolkit 449

14.1 使用asp.net ajax control toolkit 449

14.2 toolkit控件概述 452

14.3 使用autocomplete控件 453

14.3.1 通过页面方法使用autocompleteextender 454

14.3.2 通过web服务方法使用autocompleteextender 456

14.3.3 在autocompleteextender中使用文本/值对 458

14.4 使用dragpanel控件 461

14.5 使用filteredtextbox控件 465

14.6 使用maskededit控件 466

14.7 使用animation控件 468

14.8 使用updatepanelanimation控件 472

14.9 小结 475

第15章 用jquery实现客户端ajax 476

15.1 jquery介绍 476

15.1.1 使用jquery库 476

15.1.2 创建jquery文件 478

15.1.3 $方法和$(document).ready() 479

15.1.4 jquery选择器 480

15.2 从客户端调用web服务 481

15.2.1 调用外部的web服务 481

15.2.2 调用静态的页面方法 484

15.3 小结 485

前言

  近几年,Web开发技术飞速发展。与前几年相比,现今的Web开发人员开发的特性和功能在复杂性方面呈指数级增长。随着商业软件需求的不断增加,开发人员每天所用到的工具和开发框架的功能也必须不断加强。

  ASP.NET问世后的几年中,它在易用性、功能、灵活性、可伸缩性以及上市时间方面,都经历了惊人的发展。ASP.NET凭借其速度、功能和可伸缩性等特性,使得因特网上的一些大型网站(包括戴尔、MySpace和微软)都使用了ASP.NET和.NET Framework。

  不管你是计划建立下一个最大的社交网站、一个简单的博客网站,还是计划为期一年为企业构建业务范围(Line of Business)应用套件,要完成这些工作,ASP.NET都是你恰当的选择。

  读者对象

  本书适合要创建内容丰富、具备交互功能网站的专业开发人员阅读,它全面论述了利用不断发展的ASP.NET的所有工具和技术构建网站方面的知识。本书网站上有数百个在创建网站时可以直接使用的示例代码 。

  如果你是一位使用ASP.NET创建网站的新手,那么可以通过阅读本书学会关于使用ASP.NET Framework构建一个网站所需的所有知识。如果你是一位经验丰富的ASP.NET开发者,则可以使用本书学习ASP.NET 4的新特性。

  预备知识

  为最有效地使用本书,读者需要非常熟悉.NET Framework的核心概念。本书对于有经验的ASP.NET开发者是一本很好的参考书,又可为构建ASP.NET Web应用的开发人员提供全面的开发经验。本书示例清晰易懂,无论具有VB.NET 还是C#开发经验的开发者都可从中获益。

  为了从数据库访问章节学到更多的知识,你还应该拥有一些使用Microsoft SQL Server、Oracle或者Microsoft Access等数据库的经验。为了使数据驱动示例更易于安装和测试,这些示例既可通过数据文件运行,也可通过SQL Server数据库运行。

  如果你想运行本书中的每一个示例,至少应该在Windows Vista、Windows Server 2008或Windows 7环境下运行,以获得最佳效果。同时应该安装最新版的IIS(Internet Information Server,因特网信息服务)或某个版本的Visual Studio 2010。

  本书变化

  新版本反映了ASP.NET Framework的许多重要变迁。本书新增了几章内容介绍ASP.NET 4的新特性,如图表控件、URL路由引擎、ADO.NET Entity Framework的使用和WCF数据服务等。

  ASP.NET 4中另一个有较大修改和改进的部分是客户端脚本(如AJAX)的使用。与上一版相比,本书的AJAX内容全部都是新的。

  本书结构

  虽然我鼓励你从头到尾、一章接一章地阅读本书,不过有经验的ASP.NET开发人员可以选择性地阅读一些章节。必要时,你可以把本书作为参考书,在需要的时候直接阅读书中的某个章节。因此,对本书内容的整体结构有所了解是很有帮助的。

  全书分两卷,第1卷主要是基础知识,本书为第2卷,是高级主题,分为四个部分 。

  第一部分:安全——本部分关注Login控件和Membership API。你将学习如何创建用户注册和验证系统,以及如何把Membership信息保存在SQL Server数据库或活动目录(Active Directory)中。

  第二部分:构建ASP.NET应用——本部分讨论各种关于构建ASP.NET应用的话题。例如,如何利用缓存来改善ASP.NET应用的性能;如何本地化ASP.NET应用,以使它易于翻译并以不同的人类语言表述。

  第三部分:构建自定义控件——本部分关注使用自定义控件扩展ASP.NET Framework。例如,你将学习如何创建与ListView和GridView控件类似的自定义数据访问控件。

  第四部分:ASP.NET AJAX——本部分关注在ASP.NET应用中使用AJAX。前两章讨论了微软服务器端控件,你将学习如何使用UpdatePanel控件和ASP.NET AJAX Control Toolkit。在最后一章,你将学习如何使用微软AJAX库创建纯粹的客户端AJAX应用。

.  注解

  本书网站提供了本书中的所有代码示例(C#和VB.NET版本),读者可在www.informit.com/title/ 9780672331121下载。

  

媒体评论

  “这是一部杰作,极为详细地讲述了ASP.NET的方方面面。本书卓尔不群之处正在于,它提供了大量短小而精准的高质量代码,不仅很好地剖析了各种特性的工作机理,而且演示了如何在实战中使用这些特性。……需要真正可靠和详尽的ASP.NET参考吗?我强烈推荐本书。”

  ——Scott Guthrie,ASP.NET之父,微软公司副总裁

  “本书涵盖了ASP.NET程序员所需要的一切知识,深度无与伦比,绝对不容错过。别忘了,作者可是微软传奇人物,是我们所有ASP.NET开发者的偶像。”

  ——David Betz,曾荣获微软最有价值专家(MVP)称号

  

相关资源

·ASP.NET 4揭秘.卷2第1章..
·ASP.NET 4揭秘.第2卷第6章..

·程序员的7种武器(正则表达式、编程语言、数据库、算法、软件调试、开发环境)
·WCF的开山之作 WCF画卷的清明上河图(WCF WF WPF)
·博客园 .NET好书推荐(.NET 王涛 张逸 罗江华 朱永光 谭振林)
·图灵公司详细书目

0 0