第一部分 安 全
第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
· · · · · · (
收起)