第一部分 安全 1
第1章 使用Login控件 2
1.1 Login控件概覽 2
1.2 使用Login控件 6
1.2.1 自動重定嚮用戶到來源頁麵 7
1.2.2 自動隱藏已驗證用戶的Login控件 8
1.2.3 使用模闆定製Login控件 9
1.2.4 使用Login控件執行自定義身份驗證 11
1.3 使用CreateUserWizard控件 12
1.3.1 配置自定義用戶錶單字段 14
1.3.2 發送已創建用戶電子郵件通知 16
1.3.3 用戶自動重定嚮來源頁麵 18
1.3.4 自動生成密碼 19
1.3.5 在CreateUserWizard控件中使用模闆 24
1.3.6 在CreateUserWizard控件中添加注冊步驟 26
1.4 使用LoginStatus控件 28
1.5 使用LoginName控件 29
1.6 使用ChangePassword控件 30
1.6.1 發送電子郵件通知密碼更改 31
1.6.2 在ChangePassword控件中使用模闆 32
1.7 使用PasswordRecovery控件 34
1.7.1 找迴用戶的原始密碼 36
1.7.2 要求安全提示問題和答案 37
1.7.3 在PasswordRecovery控件中使用模闆 37
1.8 使用LoginView控件 39
1.9 小結 42
第2章 使用ASP.NET Membership 43
2.1 配置身份驗證 43
2.1.1 配置Forms身份驗證 44
2.1.2 使用無cookie的Forms身份驗證 45
2.1.3 在Forms身份驗證中使用相對超時限製 46
2.1.4 跨應用程序使用Forms身份驗證 47
2.1.5 跨域使用Forms身份驗證 49
2.1.6 使用FormsAuthentication類 50
2.1.7 使用User類 53
2.2 配置安全授權 54
2.2.1 角色授權 55
2.2.2 根據位置授權訪問文件 56
2.2.3 對圖片以及其他文件類型進行訪問授權 56
2.2.4 對傳統ASP頁麵進行訪問授權 58
2.3 使用ASP.NET Membership 59
2.3.1 使用Membership API 59
2.3.2 加密和散列用戶密碼 62
2.3.3 修改用戶密碼條件 64
2.3.4 鎖定壞用戶 64
2.3.5 配置SQLMembershipProvider提供程序 66
2.3.6 配置ActiveDirectoryMembership-Provider 68
2.3.7 創建自定義Membership提供程序 71
2.4 使用角色管理器 73
2.4.1 配置SqlRoleProvider 73
2.4.2 配置WindowsTokenRoleProvider 76
2.4.3 配置AuthorizationStoreRole-Provider 77
2.4.4 在瀏覽器cookie中緩存角色 79
2.4.5 使用Roles API 80
2.5 小結 82
第二部分 創建ASP.NET應用程序 83
第3章 維護應用程序狀態 84
3.1 使用瀏覽器cookie 84
3.1.1 cookie的安全性限製 85
3.1.2 創建cookie 86
3.1.3 讀取cookie 88
3.1.4 設置cookie屬性 90
3.1.5 刪除cookie 90
3.1.6 使用多值cookie 92
3.2 使用Session狀態 94
3.2.1 在Session狀態中保存數據庫數據 96
3.2.2 使用Session對象 98
3.2.3 處理Session事件 98
3.2.4 會話失效控製 100
3.2.5 使用無Cookie的Session狀態 101
3.2.6 配置Session狀態存儲 102
3.2.7 配置SQL Server Session狀態 104
3.3 使用用戶配置文件 106
3.3.1 創建用戶配置文件組 109
3.3.2 支持匿名用戶 110
3.3.3 閤並匿名用戶配置文件 113
3.3.4 從自定義類繼承Profile 113
3.3.5 創建復雜Profile屬性 114
3.3.6 自動保存用戶配置 119
3.3.7 從組件訪問用戶配置 122
3.3.8 使用配置文件管理器 123
3.3.9 配置用戶配置提供程序 125
3.3.10 創建自定義用戶配置提供程序 126
3.4 小結 130
第4章 緩存應用程序頁麵和數據 131
4.1 緩存概覽 131
4.2 使用頁麵輸齣緩存 132
4.2.1 使用參數改變輸齣緩存 133
4.2.2 基於控件變化的輸齣緩存 136
4.2.3 基於頭變化的輸齣緩存 137
4.2.4 基於瀏覽器變化的輸齣緩存 138
4.2.5 基於自定義函數變化的輸齣緩存 139
4.2.6 設置緩存位置 140
4.2.7 創建頁麵輸齣緩存文件依賴 142
4.2.8 使用編程方式設置頁麵輸齣緩存過期 143
4.2.9 以編程方式操作頁麵輸齣緩存 146
4.2.10 創建頁麵輸齣緩存配置 148
4.3 使用部分頁麵緩存 149
4.3.1 使用緩存後替換 149
4.3.2 用戶控件緩存 152
4.3.3 共享用戶控件的輸齣緩存 154
4.3.4 以編程方式處理用戶控件緩存 154
4.3.5 創建用戶控件緩存的文件依賴 155
4.3.6 緩存動態載入的用戶控件 156
4.4 使用數據源緩存 158
4.4.1 使用絕對緩存過期策略 158
4.4.2 使用彈性緩存過期策略 160
4.4.3 使用ObjectDataSource控件緩存 161
4.4.4 使用XmlDataSource控件緩存 162
4.4.5 創建DataSource控件鍵依賴 163
4.5 使用數據緩存 165
4.5.1 使用緩存API 166
4.5.2 添加項目到緩存 167
4.5.3 使用絕對過期策略添加項目 168
4.5.4 使用彈性過期策略添加項目到緩存 169
4.5.5 使用依賴添加項目 171
4.5.6 指定緩存項目優先級 172
4.5.7 配置緩存 172
4.6 使用SQL緩存依賴 174
4.6.1 使用輪詢SQL緩存依賴 174
4.6.2 配置輪詢SQL緩存依賴 174
4.6.3 對頁麵輸齣緩存使用輪詢SQL緩存依賴 176
4.6.4 對數據源緩存使用輪詢SQL緩存依賴 177
4.6.5 對數據緩存使用輪詢SQL緩存依賴 178
4.6.6 使用推SQL緩存依賴 179
4.6.7 配置推SQL緩存依賴 180
4.6.8 對頁麵輸齣緩存使用推SQL緩存依賴 181
4.6.9 對數據源緩存使用推SQL緩存依賴 182
4.6.10 對數據緩存使用推SQL緩存依賴 184
4.7 小結 185
第5章 多語言本地化應用程序 186
5.1 設置當前文化 186
5.1.1 手動設置文化 187
5.1.2 自動檢測文化 192
5.1.3 在Web配置文件中設置文化 194
5.1.4 文化和ASP.NET控件 195
5.2 使用CultureInfo類 196
5.2.1 使用CultureInfo類格式化字符串值 196
5.2.2 比較和排序字符串值 198
5.3 創建本地資源 198
5.3.1 顯式本地化錶達式 198
5.3.2 隱式本地化錶達式 200
5.3.3 對頁麵屬性使用本地化資源 202
5.3.4 以編程方式獲取本地資源 203
5.4 創建全局資源 204
5.4.1 以編程方式獲取全局資源 206
5.4.2 使用強類型本地化錶達式 206
5.5 使用Localize控件 207
5.6 小結 208
第6章 使用HTTP運行庫 209
6.1 創建自定義BuildProvider 209
6.1.1 創建簡單的BuildProvider 210
6.1.2 創建數據訪問組件BuildProvider 213
6.2 創建自定義ExpressionBuilder 217
6.3 創建HTTP處理程序 221
6.3.1 創建一般處理程序 221
6.3.2 實現IHttpHandler接口 223
6.3.3 在IIS中注冊擴展名 226
6.3.4 創建異步HTTP處理程序 228
6.4 使用HTTP應用程序和HTTP模塊 231
6.4.1 創建Global.asax文件 231
6.4.2 創建自定義HTTP模塊 233
6.5 小結 235
第7章 配置應用程序 236
7.1 網站配置概覽 236
7.1.1 使用Web站點管理工具 237
7.1.2 使用ASP.NET MMC嵌入工具 238
7.1.3 ASP.NET配置節 239
7.1.4 把配置設置應用到特定路徑 240
7.1.5 鎖定配置文件 241
7.1.6 添加自定義應用程序設置 242
7.1.7 將配置設置放到外部文件 243
7.2 使用配置API 244
7.2.1 從當前應用程序讀取配置節 245
7.2.2 打開配置文件 248
7.2.3 打開遠程服務器上的配置文件 250
7.2.4 使用Configuration類 253
7.2.5 修改配置節 255
7.2.6 準備創建新的網站 257
7.3 創建自定義配置節 259
7.4 創建加密的配置節 266
7.4.1 使用aspnet_regiis工具加密配置節 267
7.4.2 以編程方式加密配置節 267
7.4.3 部署加密的Web配置文件 269
7.5 小結 271
第三部分 構建自定義控件 273
第8章 構建自定義控件 274
8.1 構建自定義控件概述 274
8.1.1 構建完全生成控件 275
8.1.2 構建組閤控件 282
8.1.3 構建混閤控件 284
8.2 視圖狀態和控件狀態 288
8.2.1 支持視圖狀態 288
8.2.2 支持控件狀態 290
8.3 處理迴傳數據和事件 293
8.3.1 處理迴傳數據 293
8.3.2 處理迴傳事件 296
8.4 使用控件屬性集閤 303
8.4.1 使用ParseChildren特性 303
8.4.2 使用AddParsedSubObject()方法 308
8.4.3 使用ControlBuilder 309
8.5 構建更好的設計器體驗 312
8.5.1 給控件應用設計時特性 312
8.5.2 創建控件設計器 315
8.5.3 創建ContainerControlDesigner 315
8.5.4 添加智能標簽 318
8.6 小結 321
第9章 創建模闆化數據綁定控件 322
9.1 創建模闆化控件 322
9.1.1 實現ITemplate接口 322
9.1.2 創建默認模闆 325
9.1.3 支持簡化的數據綁定 328
9.1.4 支持雙嚮數據綁定 331
9.2 創建模闆化數據綁定控件 335
9.3 小結 339
第四部分 ASP.NET AJAX 341
第10章 使用服務器端ASP.NET AJAX 342
10.1 Ajax概況 342
10.2 服務器端Ajax與客戶端Ajax 344
10.3 調試Ajax應用 344
10.4 使用UpdatePanel控件 345
10.4.1 指定UpdatePanel觸發器 351
10.4.2 嵌套的UpdatePanel控件 353
10.4.3 以編程方式更新UpdatePanel 356
10.4.4 UpdatePanel與JavaScript 357
10.4.5 UpdatePanel服務器端頁麵執行生命周期 359
10.4.6 UpdatePanel客戶端頁麵執行生命周期 361
10.4.7 取消當前異步迴傳 366
10.4.8 中斷上一個異步迴傳 368
10.4.9 在一次異步迴傳中傳遞額外的信息 370
10.4.10 優雅地處理UpdatePanel錯誤 371
10.4.11 UpdatePanel的性能 375
10.5 使用Timer控件 377
10.6 使用UpdateProgress控件 380
10.7 小結 382
第11章 使用ASP.NET AJAX ControlToolkit 383
11.1 使用ASP.NET AJAX Control Toolkit 383
11.2 Toolkit控件概述 385
11.3 使用AutoComplete控件 387
11.3.1 通過頁麵方法使用AutoCompleteExtender 388
11.3.2 通過Web服務方法使用AutoCompleteExtender 390
11.3.3 在AutoCompleteExtender中使用文本/值對 392
11.4 使用DragPanel控件 395
11.5 使用FilteredTextBox控件 397
11.6 使用MaskedEdit控件 399
11.7 使用Animation控件 400
11.8 使用UpdatePanelAnimation控件 404
11.9 小結 407
第12章 使用客戶端ASP.NET AJAX 408
12.1 讓JavaScript看上去像C# 408
12.1.1 使用Microsoft AJAX Library 409
12.1.2 創建AJAX Client Library 410
12.1.3 使用JavaScript智能感知 412
12.1.4 使用類 413
12.1.5 使用繼承 416
12.1.6 使用命名空間 418
12.1.7 獲取DOM元素 419
12.1.8 處理DOM事件 420
12.1.9 獲取DOM事件的信息 422
12.1.10 創建迴調和委托 424
12.1.11 調試和發布AJAX Library 426
12.1.12 調試微軟AJAX應用 426
12.2 在客戶端調用Web服務 429
12.2.1 調用外部Web服務 429
12.2.2 調用靜態頁麵方法 432
12.2.3 使用AJAX編輯電影 433
12.2.4 使用驗證服務 436
12.2.5 使用角色服務 439
12.2.6 使用Profile服務 441
12.3 創建自定義AJAX控件和行為 444
12.3.1 創建AJAX控件 444
12.3.2 在服務器端運行客戶端控件 448
12.3.3 創建客戶端行為 452
12.3.4 在服務器端運行客戶端行為 455
12.4 小結 457
第五部分 示例程序 459
第13章 構建代碼示例網站 460
13.1 示例網站概覽 460
13.1.1 創建博客條目 461
13.1.2 創建代碼示例條目 463
13.2 數據訪問與驗證 465
13.2.1 使用LINQ to SQL 465
13.2.2 處理通用數據庫操作 467
13.2.3 創建單一插入和更新錶單 467
13.2.4 處理錶單驗證 471
13.3 使用Ajax 472
13.3.1 使用UpdatePanel控件 472
13.3.2 使用ASP.NET AJAX ControlToolkit 472
13.4 使用VirtualPathProvider類 474
13.5 小結 475
· · · · · · (
收起)