內容介紹
本書是有史以來最成功的ASP.NET著作最新版,有“ASP.NET聖經”之譽。作者因為這一系列著作而榮獲微軟公司社區最高技術榮譽“微軟傳奇人物”稱號。在國內,本書以前的版本也影響了整整一代ASP.NET程式設計師。在新版中,作者繼承了使本書享譽世界的循序漸進、深入淺出、詳盡全面和代碼密集等諸多優點。與此同時,作者添加了大量新內容,以涵蓋ASP.NET 3.5引入的所有新特性,包括使用LINQ to SQL更輕鬆地構建數據驅動的網站,使用新的數據訪問控制項ListView和DataPager開發更加靈活的用戶體驗,和整整3章全面剖析ASP.NET AJAX。卷1是基礎篇,主要講述如何創建ASP.NET頁面、設計ASP.NET網站、數據訪問、創建組件、站點導航等。除了廣泛令人稱道的清晰透徹的闡述文字之外,本書的代碼示例處處堪稱經典,體現了作者世界級大師的深厚功力。中文版所有代碼示例都用C#語言來描述,並同時在網站www.superexpert.com/中提供C#和VB.NET代碼。
本書既是絕佳的學習資源,也是你肯定會不斷查閱的必備參考書。
作者介紹
Stephen Walther蜚聲世界的ASP.NET專家,現為微軟公司ASP.NET小組資深程式經理,負責ASP.NET MVC。他曾是多年的微軟MVP,並榮獲微軟公司社區最高技術榮譽“微軟傳奇人物”稱號。他開發的微軟ASP.NET示範性應用程式ASP.NET Community Starter Kit,麻省理工學院、史丹福大學和哈佛大學等200多所大學使用的Collegescape應用程式,以及拍賣網站www.cityauction.com等,都已經成為經典。本書為其代表著作。作品目錄
第一部分 安全 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