《ASP.NET 4揭秘》适合各层次ASP.NET开发人员阅读。
《ASP.NET 4揭秘.卷2》
[第0一]部分 安 全
第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 Membership48
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 Membership64
2.3.1 使用Membership API65
2.3.2 加密和散列用户密码68
2.3.3 修改用户密码条件70
2.3.4 锁定坏用户71
2.3.5 配置SQLMembershipProvider提供程序73
2.3.6 配置ActiveDirectoryMember-shipProvider74
2.3.7 创建自定义Membership提供程序78
2.4 使用角色管理器80
2.4.1 配置SqlRoleProvider80
2.4.2 配置WindowsTokenRole-Provider85
2.4.3 配置AuthorizationStoreRole-Provider86
2.4.4 在浏览器cookie中缓存角色88
2.4.5 使用Roles API89
2.5 小结91
第二部分 创建ASP.NET应用程序
第3章 维护应用程序状态94
3.1 使用浏览器cookie94
3.1.1 cookie的安全性限制95
3.1.2 创建cookie96
3.1.3 读取cookie98
3.1.4 设置cookie属性100
3.1.5 删除cookie101
3.1.6 使用多值cookie103
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 从自定义类继承Profile126
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 使用缓存API184
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 创建自定义BuildProvider234
6.1.1 创建简单的BuildProvider235
6.1.2 创建数据访问组件Build-Provider238
6.2 创建自定义ExpressionBuilder243
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 创建你的[第0一]个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 使用配置API287
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 使用ControlBuilder367
11.5 构建更好的设计器体验371
11.5.1 给控件应用设计时特性371
11.5.2 创建控件设计器374
11.5.3 创建ContainerControl-Designer374
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 AJAX404
13.1 Ajax概况404
13.2 服务器端Ajax与客户端Ajax405
13.3 调试Ajax应用406
13.4 使用UpdatePanel控件407
13.4.1 指定UpdatePanel触发器414
13.4.2 嵌套的UpdatePanel控件415
13.4.3 以编程方式更新Update-Panel419
13.4.4 UpdatePanel与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 Toolkit449
14.1 使用ASP.NET AJAX Control Toolkit449
14.2 Toolkit控件概述452
14.3 使用AutoComplete控件453
14.3.1 通过页面方法使用AutoCompleteExtender454
14.3.2 通过Web服务方法使用AutoCompleteExtender456
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实现客户端Ajax476
15.1 jQuery介绍476
15.1.1 使用jQuery库476
15.1.2 创建jQuery文件478
15.1.3