《ASP.NET 4高級程式設計(第4版)》是ASP.NET領域的鴻篇巨製,全面講解了ASP.NET4的各種特性及其背後的工作原理,並給出了許多針對如何構建複雜、可擴展的網站從實踐中得出的建議。書中還深入講述了其他ASP.NET圖書遺漏的高級主題,如自定義控制項的創建、圖像處理、加密等。
基本介紹
- 書名:ASP.NET 4高級程式設計
- 類型:計算機與網際網路
- 出版日期:2011年6月1日
- 語種:簡體中文
- ISBN:9787115253293
- 作者:Matthew MacDonald Adam Freeman
- 出版社:人民郵電出版社
- 頁數:1146頁
- 開本:16
- 品牌:人民郵電出版社
書籍簡介
目 錄
第1章ASP.NET簡介 2
1.1 ASP.NET的7大要點 2
1.1.1 要點1:ASP.NET是同.NETFramework集成在一起的 2
1.1.2 要點2:ASP.NET是編譯執行的,而不是解釋執行的 3
1.1.3 要點3:ASP.NET支持多語言 4
1.1.4 要點4:ASP.NET運行在公共語言運行庫內 6
1.1.5 要點5:ASP.NET是面向對象的 7
1.1.6 要點6:ASP.NET支持所有的瀏覽器 8
1.1.7 要點7:ASP.NET易於部署和配置 8
1.2 ASP.NET的演變 9
1.2.1 ASP.NET1.0和ASP.NET1.1 9
1.2.2 ASP.NET2.0 9
1.2.3 ASP.NET3.5 10
1.2.4 ASP.NET4 12
1.2.5 Silverlight 14
1.3 總結 15
第2章 Visual Studio 16
2.1 Visual Studio 16
2.1.1 網站和Web項目 17
2.1.2 創建無項目檔案的網站 18
2.1.3 設計網頁 21
2.2 Visual StudioIDE 26
2.2.1 解決方案資源管理器 28
2.2.2 文檔視窗 29
2.2.3 工具箱 29
2.2.4 錯誤列表和任務列表 30
2.2.5 伺服器資源管理器 31
2.3 代碼編輯器 32
2.3.1 添加程式集引用 33
2.3.2 智慧型感知和大綱顯示 35
2.3.3 Visual Studio 2010改進 37
2.4 編碼模型 42
2.4.1 代碼隱藏檔案如何與頁面連線 44
2.4.2 控制項標籤如何與頁面變數連線 44
2.4.3 事件如何與事件處理程式連線 46
2.5 Web項目 47
2.5.1 基於項目的開發 47
2.5.2 創建Web項目 48
2.5.3 遷移舊版Visual Studio創建的網站 49
2.6 Visual Studio調試 51
2.6.1 單步調試 52
2.6.2 變數監視 54
2.6.3 高級斷點 55
2.7 WebDevelopment Helper 56
2.8 總結 57
第3章 Web窗體 58
3.1 頁面處理 58
3.1.1 HTML表單 59
3.1.2 動態用戶界面 60
3.1.3 ASP.NET事件模型 61
3.1.4 自動回送 62
3.1.5 視圖狀態 63
3.1.6 XHTML兼容性 66
3.1.7 客戶端控制項ID 71
3.2 Web窗體處理階段 73
3.2.1 頁面框架初始化 74
3.2.2 用戶代碼初始化 74
3.2.3 驗證 74
3.2.4 事件處理 75
3.2.5 自動數據綁定 75
3.2.6 清除 76
3.2.7 頁面流示例 76
3.3 作為控制項容器的頁面 78
3.3.1 顯示控制項樹 78
3.3.2 頁頭 82
3.3.3 動態控制項的創建 82
3.4 Page類 84
3.4.1 Session、Application和Cache 84
3.4.2 Request 85
3.4.3 Response 86
3.4.4 Server 88
3.4.5 User 90
3.4.6 Trace 91
3.4.7 訪問其他類中的HTTP上下文 96
3.5 總結 96
第4章 伺服器控制項 97
4.1 伺服器控制項的類型 97
4.2 HTML伺服器控制項 99
4.2.1 HtmlControl類 100
4.2.2 HtmlContainerControl類 100
4.2.3 HtmlInputControl類 100
4.2.4 HTML伺服器控制項類 101
4.2.5 設定Style特性和其他屬性 102
4.2.6 通過編程創建伺服器控制項 103
4.2.7 處理伺服器端事件 104
4.3 Web控制項 107
4.3.1 WebControl基類 107
4.3.2 基本的Web控制項類 108
4.3.3 單位 109
4.3.4 枚舉 110
4.3.5 顏色 110
4.3.6 字型 111
4.3.7 焦點 12
4.3.8 默認按鈕 113
4.3.9 可滾動面板 114
4.3.10 處理Web控制項事件 114
4.4 List控制項 116
4.4.1 Selectable列表控制項 117
4.4.2 BulletedList控制項 120
4.5 輸入驗證控制項 121
4.5.1 驗證控制項 121
4.5.2 驗證流程 122
4.5.3 BaseValidator類 122
4.5.4 RequiredFieldValidator控制項 124
4.5.5 RangeValidator控制項 124
4.5.6 CompareValidator控制項 125
4.5.7 RegularExpressionValidator控制項 125
4.5.8 CustomValidator控制項 127
4.5.9 ValidationSummary控制項 128
4.5.10 通過編程使用驗證器 129
4.5.11 驗證組 130
4.6 富控制項 132
4.6.1 AdRotator控制項 132
4.6.2 Calendar控制項 134
4.7 總結 136
第5章 ASP.NET應用程式 137
5.1 剖析ASP.NET應用程式 137
5.1.1 應用程式域 137
5.1.2 應用程式生命周期 138
5.1.3 應用程式更新 139
5.1.4 應用程式目錄結構 139
5.2 global.asax應用程式檔案 140
5.2.1 應用程式事件 141
5.2.2 演示應用程式事件 143
5.3 ASP.NET配置 144
5.3.1 machine.config檔案 144
5.3.2 web.config檔案 147
5.3.3 設定 150
5.3.4 150
5.3.5 150
5.3.6 152
5.3.7 通過編程讀寫配置節 152
5.3.8 網站管理工具(WAT) 155
5.3.9 擴展配置檔案結構 156
5.3.10 加密配置節 159
5.4 .NET組件 161
5.4.1 創建組件 161
5.4.2 通過App_Code目錄使用組件 162
5.4.3 通過Bin目錄使用組件 163
5.5 擴展HTTP管道 165
5.5.1 HTTP處理程式 165
5.5.2 創建自定義的HTTP處理程式 167
5.5.3 配置自定義的HTTP處理程式 168
5.5.4 使用無須配置的HTTP處理程式 169
5.5.5 創建高級的HTTP處理程式 169
5.5.6 為非HTML內容創建HTTP處理程式 171
5.5.7 HTTP模組 173
5.5.8 創建自定義HTTP模組 174
5.6 總結 176
第6章 狀態管理 177
6.1 ASP.NET狀態管理 177
6.2 視圖狀態 179
6.2.1 視圖狀態示例 180
6.2.2 在視圖狀態中保存對象 181
6.2.3 視圖狀態評估 183
6.2.4 有選擇地禁用視圖狀態 184
6.2.5 視圖狀態安全 185
6.3 在頁面間傳送信息 186
6.3.1 查詢字元串 187
6.3.2 跨頁回發 188
6.4 cookie 193
6.5 會話狀態 194
6.5.1 會話架構 194
6.5.2 使用會話狀態 196
6.5.3 配置會話狀態 197
6.5.4 會話狀態安全 202
6.6 應用程式狀態 203
6.7 總結 206
第二部分 數據訪問
第7章 基礎 208
7.1 ADO.NET架構 209
7.1.1 ADO.NET數據提供程式 209
7.1.2 ADO.NET的標準化 210
7.1.3 基本ADO.NET類 211
7.2 Connection類 212
7.2.1 連線字元串 212
7.2.2 測試連線 214
7.2.3 連線池 215
7.3 Command類和DataReader類 217
7.3.1 Command基礎 217
7.3.2 DataReader類 218
7.3.3 ExecuteReader()方法和DataReader 218
7.3.4 ExecuteScalar()方法 223
7.3.5 ExecuteNonQuery()方法 223
7.3.6 SQL注入攻擊 224
7.3.7 使用參數化命令 226
7.3.8 調用存儲過程 227
7.4 事務 229
7.4.1 事務和ASP.NET應用程式 230
7.4.2 隔離級別 234
7.4.3 保存點 235
7.5 提供程式無關的代碼 235
7.5.1 創建工廠 236
7.5.2 用工廠創建對象 237
7.5.3 使用提供程式無關的代碼的查詢 237
7.6 總結 239
第8章 數據組件和DataSet 240
8.1 構建數據訪問組件 240
8.1.1 數據包 241
8.1.2 存儲過程 242
8.1.3 數據套用類 243
8.1.4 測試資料庫組件 248
8.2 非連線的數據 249
8.2.1 Web應用程式和DataSet 250
8.2.2 XML集成 251
8.3 DataSet類 251
8.4 DataAdapter類 252
8.4.1 填充DataSet 253
8.4.2 使用多個表和關係 254
8.4.3 查找特定行 257
8.4.4 在數據訪問類里使用DataSet 257
8.4.5 數據綁定 258
8.5 DataView類 259
8.5.1 使用DataView排序 259
8.5.2 使用DataView過濾 261
8.5.3 使用關係的高級過濾 262
8.5.4 計算列 263
8.6 總結 264
第9章 數據綁定 265
9.1 基本的數據綁定 265
9.1.1 單值綁定 266
9.1.2 其他類型的表達式 268
9.1.3 重複值綁定 271
9.2 數據源控制項 277
9.3 SqlDataSource 278
9.3.1 選擇記錄 279
9.3.2 參數化命令 281
9.3.3 錯誤處理 285
9.3.4 更新記錄 286
9.3.5 刪除記錄 289
9.3.6 插入記錄 289
9.3.7 SqlDataSource的不足 290
9.4 ObjectDataSource 291
9.4.1 選擇記錄 291
9.4.2 更新記錄 295
9.4.3 使用數據對象執行更新 296
9.5 數據源控制項的限制 299
9.5.1 問題 299
9.5.2 添加其他項 300
9.5.3 使用SqlDataSource處理其他選項 301
9.5.4 使用ObjectDataSource處理其他選項 301
9.6 總結 302
第10章 富數據控制項 303
10.1 GridView 303
10.2 格式化GridView 307
10.2.1 格式化欄位 307
10.2.2 樣式 308
10.2.3 格式化特定值 311
10.3 GridView行選擇 313
10.3.1 使用選擇來創建主-從表單 314
10.3.2 SelectedIndexChanged事件 315
10.3.3 將數據欄位用作選擇按鈕 315
10.4 對GridView排序 316
10.4.1 使用SqlDataSource排序 317
10.4.2 使用ObjectDataSource排序 318
10.4.3 排序和選擇 319
10.4.4 高級排序 319
10.5 GridView分頁 320
10.5.1 自動分頁 320
10.5.2 分頁和選擇 322
10.5.3 ObjectDataSource的自定義分頁 322
10.5.4 定製分頁欄 324
10.6 GridView模板 325
10.6.1 使用多個模板 327
10.6.2 在Visual Studio中編輯模板 328
10.6.3 綁定到方法 328
10.6.4 處理模板中的事件 330
10.6.5 使用模板編輯 330
10.6.6 模板中的客戶端ID 335
10.7 ListView 336
10.7.1 分組 338
10.7.2 分頁 340
10.8 DetailsView和FormView 341
10.8.1 DetailsView 341
10.8.2 FormView 344
10.9 高級格線 345
10.9.1 GridView中的匯總 345
10.9.2 單個表中的父/子視圖 347
10.9.3 使用查找表編輯欄位 349
10.9.4 處理來自資料庫的圖片 351
10.9.5 探測並發衝突 355
10.10 總結 359
第11章 快取和異步頁面 360
11.1 理解ASP.NET快取 360
11.2 輸出快取 361
11.2.1 聲明性的輸出快取 361
11.2.2 快取和查詢字元串 362
11.2.3 使用特定查詢字元串參數的快取 363
11.2.4 自定義快取控制 364
11.2.5 使用HttpCachePolicy類進行快取 365
11.2.6 快取後替換和部分頁快取 365
11.2.7 快取用戶配置 367
11.2.8 快取配置 368
11.2.9 輸出快取擴展 369
11.3 數據快取 373
11.3.1 向快取添加項目 373
11.3.2 簡單的快取測試 375
11.3.3 快取優先權 376
11.3.4 使用數據源控制項的快取 376
11.4 快取依賴 379
11.4.1 檔案和快取項目依賴 379
11.4.2 聚合依賴 380
11.4.3 移除項目回調 381
11.4.4 理解SQL快取通知 383
11.4.5 快取通知的工作方式 384
11.4.6 啟用通知 384
11.4.7 創建快取依賴 385
11.5 自定義快取依賴 386
11.5.1 基本的自定義快取依賴 386
11.5.2 使用訊息佇列的自定義快取依賴 387
11.6 異步頁面 389
11.6.1 創建異步頁面 390
11.6.2 在異步頁面中查詢數據 392
11.6.3 錯誤處理 393
11.6.4 在異步任務中使用快取 395
11.6.5 多異步任務和逾時 397
11.7 總結 399
第12章 檔案和流 400
12.1 使用檔案系統 400
12.1.1 Directory類和File類 400
12.1.2 DirectoryInfo類和FileInfo類 402
12.1.3 DriveInfo類 404
12.1.4 使用Attributes 405
12.1.5 使用通配符過濾檔案 407
12.1.6 獲取檔案的版本信息 407
12.1.7 Path類 408
12.1.8 檔案瀏覽器 410
12.2 使用流讀寫檔案 414
12.2.1 文本檔案 415
12.2.2 二進制檔案 416
12.2.3 上傳檔案 417
12.2.4 使檔案對多用戶安全 419
12.2.5 壓縮 423
12.3 序列化 423
12.4 總結 426
第13章 LINQ 427
13.1 LINQ基礎 427
13.1.1 延遲執行 429
13.1.2 LINQ是如何工作的 429
13.1.3 LINQ表達式 430
13.1.4 揭秘LINQ表達式 436
13.2 LINQ to DataSet 439
13.2.1 強類型的DataSet 441
13.2.2 空值 441
13.3 LINQ to Entities 441
13.3.1 生成數據模型 442
13.3.2 數據模型類 442
13.3.3 實體關係 444
13.3.4 查詢存儲過程 446
13.3.5 LINQ to Entities查詢揭秘 447
13.4 資料庫操作 452
13.4.1 插入 452
13.4.2 更新 454
13.4.3 刪除 454
13.4.4 管理並發 455
13.4.5 處理並發衝突 455
13.5 EntityDataSource控制項 459
13.5.1 顯示數據 459
13.5.2 獲取關聯數據 463
13.5.3 編輯數據 464
13.5.4 驗證 464
13.6 使用QueryExtender控制項 465
13.6.1 使用SearchExperssion 466
13.6.2 使用RangeExpression 467
13.6.3 使用PropertyExpression 467
13.6.4 使用MethodExpression 468
13.7 總結 468
第14章 XML 470
14.1 什麼時候使用XML 470
14.2 XML簡介 471
14.2.1 XML的優點 472
14.2.2 格式良好的XML 472
14.2.3 XML命名空間 473
14.2.4 XML架構 474
14.3 基於流的XML處理 475
14.3.1 寫XML檔案 476
14.3.2 讀取XML檔案 478
14.4 記憶體中的XML處理 481
14.4.1 XmlDocument 482
14.4.2 XPathNavigator 485
14.4.3 XDocument 486
14.5 搜尋XML內容 491
14.5.1 搜尋XmlDocument 491
14.5.2 使用XPath搜尋XmlDocument 493
14.5.3 使用LINQ搜尋XDocument 494
14.6 驗證XML內容 496
14.6.1 基本架構 496
14.6.2 驗證XmlDocument 497
14.6.3 使用XDocument進行驗證 498
14.7 轉換XML內容 499
14.7.1 基本的樣式表 499
14.7.2 使用XslCompiledTransform 500
14.7.3 使用Xml控制項 501
14.7.4 使用LINQ to XML轉換XML 502
14.8 XML數據綁定 504
14.8.1 非層次化綁定 504
14.8.2 使用XPath 506
14.8.3 嵌套的格線 508
14.8.4 使用TreeView的層次化綁定 509
14.8.5 使用XSLT 511
14.8.6 綁定到來自其他源的XML內容 512
14.8.7 通過XmlDataSource更新XML 513
14.9 XML和ADO.NET數據集 513
14.9.1 把DataSet轉換為XML 514
14.9.2 把DataSet作為XML訪問 515
14.10 總結 517
第三部分 構建ASP.NET網站
第15章 用戶控制項 520
15.1 用戶控制項基礎 520
15.1.1 創建簡單的用戶控制項 521
15.1.2 把頁面轉換成用戶控制項 522
15.2 為用戶控制項添加代碼 523
15.2.1 處理事件 523
15.2.2 添加屬性 524
15.2.3 使用自定義對象 525
15.2.4 添加事件 528
15.2.5 公開內部Web控制項 530
15.3 動態載入用戶控制項 531
15.4 局部頁面快取 534
15.4.1 VaryByControl 535
15.4.2 共享快取控制項 536
15.5 總結 537
第16章 主題和母版頁 538
16.1 層疊樣式表 538
16.1.1 創建樣式表 538
16.1.2 套用樣式表規則 540
16.2 主題 542
16.2.1 主題資料夾和外觀 543
16.2.2 套用簡單主題 544
16.2.3 處理主題衝突 545
16.2.4 為同一控制項創建多個外觀 546
16.2.5 含有模板和圖片的外觀 547
16.2.6 在主題里使用CSS 549
16.2.7 通過配置檔案來套用主題 549
16.2.8 動態套用主題 550
16.3 標準化網站布局 551
16.4 母版頁基礎 552
16.4.1 簡單的母版頁 552
16.4.2 簡單的內容頁 554
16.4.3 默認內容 556
16.4.4 具有表格和CSS布局的母版頁 556
16.4.5 母版頁和相對路徑 559
16.4.6 通過配置檔案套用母版頁 559
16.5 高級母版頁 560
16.5.1 和母版頁類互動 560
16.5.2 動態設定母版頁 561
16.5.3 嵌套母版頁 561
16.6 總結 563
第17章 網站導航 564
17.1 多視圖頁面 564
17.1.1 MultiView控制項 565
17.1.2 Wizard控制項 568
17.2 站點地圖 575
17.2.1 定義站點地圖 576
17.2.2 綁定站點地圖 577
17.2.3 導航路徑 578
17.2.4 顯示站點地圖的一部分 580
17.2.5 站點地圖對象 583
17.2.6 加入自定義站點地圖信息 584
17.2.7 創建自定義的SiteMapProvider 584
17.2.8 安全調整 590
17.3 URL映射和路由 592
17.3.1 URL映射 592
17.3.2 URL路由 593
17.4 TreeView控制項 594
17.4.1 TreeNode 595
17.4.2 按需填充節點 597
17.4.3 TreeView樣式 598
17.5 Menu控制項 601
17.5.1 Menu樣式 603
17.5.2 Menu模板 605
17.6 總結 606
第18章 網站部署 607
18.1 安裝和配置IIS 607
18.1.1 安裝IIS 7 607
18.1.2 管理IIS 7 608
18.2 部署網站 610
18.2.1 通過複製檔案進行部署 611
18.2.2 使用Web部署 614
18.2.3 通過FTP部署 621
18.3 管理網站 626
18.3.1 創建新站點 626
18.3.2 創建虛擬目錄 627
18.3.3 使用VirtualPathProvider 628
18.3.4 使用應用程式池 631
18.3.5 使用應用程式預熱 633
18.4 擴展集成管道 634
18.4.1 創建處理程式 634
18.4.2 部署處理程式 635
18.4.3 配置處理程式 635
18.4.4 測試處理程式 636
18.5 總結 636
第四部分 安全
第19章 ASP.NET安全模型 638
19.1 為何創建安全軟體 638
19.1.1 理解潛在的威脅 638
19.1.2 安全編程原則 639
19.1.3 理解Gatekeeper 640
19.2 理解安全級別 641
19.2.1 驗證 641
19.2.2 授權 642
19.2.3 機密性和完整性 643
19.2.4 互相協作 643
19.3 理解SSL 644
19.3.1 理解證書 645
19.3.2 理解SSL 645
19.3.3 在IIS 7.x中配置SSL 646
19.4 總結 649
第20章 表單驗證 650
20.1 表單驗證介紹 650
20.1.1 為什麼使用表單驗證 650
20.1.2 為什麼不使用表單驗證 652
20.1.3 為什麼不自己實現cookie驗證 653
20.1.4 表單驗證類 654
20.2 實現表單驗證 655
20.2.1 配置表單驗證 655
20.2.2 禁止匿名用戶訪問 657
20.2.3 創建自定義登錄頁面 658
20.2.4 自定義憑證存儲 662
20.2.5 表單驗證中的持久化cookie 663
20.3 IIS 7.x和表單驗證 665
20.4 總結 669
第21章 成員資格 670
21.1 介紹ASP.NET的成員資格API 670
21.2 使用成員資格API 672
21.2.1 配置表單驗證 673
21.2.2 創建數據存儲 674
21.2.3 配置連線字元串和成員資格提供程式 679
21.2.4 創建並驗證用戶 681
21.3 使用安全控制項 683
21.3.1 Login控制項 684
21.3.2 LoginStatus控制項 693
21.3.3 LoginView控制項 693
21.3.4 PasswordRecovery控制項 694
21.3.5 ChangePassword控制項 697
21.3.6 CreateUserWizard控制項 698
21.4 在IIS 7.x里配置成員資格 702
21.4.1 配置提供程式和用戶 702
21.4.2 在其他應用程式里使用成員資格API 703
21.5 使用Membership類 705
21.5.1 從存儲中獲得用戶 706
21.5.2 更新存儲中的用戶 708
21.5.3 創建和刪除用戶 708
21.5.4 檢驗用戶 709
21.6 總結 709
第22章 Windows驗證 710
22.1 介紹Windows驗證 710
22.1.1 為什麼使用Windows驗證 710
22.1.2 為什麼不使用Windows驗證 711
22.1.3 Windows驗證機制 712
22.2 實現Windows驗證 717
22.2.1 配置IIS 7.x 717
22.2.2 配置ASP.NET 718
22.2.3 IIS 7.x管道 719
22.2.4 禁止匿名用戶訪問 722
22.2.5 訪問Windows用戶信息 723
22.3 身份模擬 727
22.3.1 Windows中的身份模擬和委託 728
22.3.2 經過配置的身份模擬 729
22.3.3 可程式的身份模擬 729
22.4 總結 732
第23章 授權和角色 733
23.1 URL 授權 733
23.2 檔案授權 738
23.3 在代碼中檢查授權 739
23.3.1 使用IsInRole()方法 739
23.3.2 使用PrincipalPermission類 740
23.4 為基於角色的授權使用角色API 742
23.4.1 和角色一起使用LoginView控制項 747
23.4.2 通過編程訪問角色 748
23.4.3 在Windows驗證中使用角色API 750
23.5 IIS 7.x里的授權和角色 752
23.5.1 在IIS 7.x里使用ASP.NET角色授權 754
23.5.2 在IIS 7.x中管理ASP.NET角色 756
23.6 總結 757
第24章 用戶配置 758
24.1 理解用戶配置 758
24.1.1 用戶配置的性能 758
24.1.2 用戶配置如何存儲數據 759
24.1.3 用戶配置和驗證 760
24.1.4 用戶配置與自定義的數據組件 760
24.2 使用SqlProfileProvider 761
24.2.1 創建用戶配置表 761
24.2.2 配置提供程式 763
24.2.3 定義用戶配置屬性 764
24.2.4 使用用戶配置屬性 764
24.2.5 用戶配置序列化 766
24.2.6 用戶配置組 767
24.2.7 用戶配置和自定義的數據類型 768
24.2.8 用戶配置API 771
24.2.9 匿名用戶配置 773
24.3 自定義的用戶配置提供程式 775
24.3.1 自定義的用戶配置提供程式類 775
24.3.2 設計FactoredProfileProvider 777
24.3.3 通過編碼實現FactoredProfileProvider 778
24.3.4 測試FactoredProfileProvider 781
24.4 總結 784
第25章 加密 785
25.1 加密數據:機密性問題 785
25.2 .NET加密命名空間 786
25.3 理解.NET加密類 789
25.3.1 對稱加密算法 790
25.3.2 非對稱加密 791
25.3.3 抽象加密類 791
25.3.4 ICryptoTransform接口 792
25.3.5 CryptoStream類 793
25.4 加密敏感數據 793
25.4.1 管理秘密信息 794
25.4.2 使用對稱算法 795
25.4.3 使用非對稱算法 799
25.4.4 加密資料庫中的敏感數據 801
25.5 加密查詢字元串 806
25.5.1 包裝查詢字元串 806
25.5.2 創建一個測試頁面 808
25.6 總結 810
第26章 自定義成員資格提供程式 811
26.1 自定義提供程式的架構 811
26.2 創建自定義提供程式的基本步驟 812
26.2.1 自定義提供程式的總體設計 813
26.2.2 設計並實現自定義存儲 813
26.2.3 實現提供程式類 820
26.2.4 使用自定義提供程式類 837
26.3 總結 840
第五部分 高級用戶界面
第27章 自定義伺服器控制項 842
27.1 自定義伺服器控制項入門 842
27.1.1 創建簡單的自定義控制項 842
27.1.2 使用自定義控制項 844
27.1.3 工具箱中的自定義控制項 845
27.1.4 創建支持樣式屬性的Web控制項 847
27.1.5 呈現過程 850
27.2 處理不同的瀏覽器 852
27.2.1 HtmlTextWriter 852
27.2.2 瀏覽器檢測 852
27.2.3 瀏覽器屬性 853
27.2.4 覆蓋瀏覽器類型偵測 854
27.2.5 自適應呈現 855
27.3 控制項狀態和事件 856
27.3.1 視圖狀態 856
27.3.2 控制項狀態 858
27.3.3 回傳數據和change事件 860
27.3.4 觸發回傳 862
27.4 擴展現有的Web控制項 863
27.4.1 組合控制項 864
27.4.2 派生控制項 866
27.5 總結 869
第28章 圖形、GDI+和圖表 870
28.1 ImageMap控制項 870
28.1.1 創建熱點 871
28.1.2 處理熱點單擊 872
28.1.3 自定義熱點 873
28.2 使用GDI+畫圖 875
28.2.1 簡單繪製 875
28.2.2 圖像格式和質量 877
28.2.3 Graphics類 878
28.2.4 使用GraphicsPath 880
28.2.5 畫筆 881
28.2.6 畫刷 883
28.3 在網頁上嵌入動態圖形 885
28.3.1 使用PNG格式 885
28.3.2 傳遞信息給動態圖像 886
28.3.3 使用GDI+的自定義控制項 888
28.4 使用Chart控制項 892
28.4.1 創建基本的圖表 892
28.4.2 用數據填充圖表 897
28.5 總結 904
第29章 JavaScript和Ajax技術 905
29.1 JavaScript本質 905
29.1.1 HTML DOM 906
29.1.2 客戶端事件 906
29.1.3 腳本塊 908
29.1.4 操縱HTML元素 910
29.1.5 調試JavaScript 910
29.2 基本的JavaScript示例 912
29.2.1 創建JavaScript頁面處理器 912
29.2.2 使用JavaScript異步下載圖片 915
29.2.3 呈現腳本塊 919
29.3 腳本注入攻擊 920
29.3.1 請求驗證 921
29.3.2 禁用請求驗證 922
29.3.3 擴展請求驗證 923
29.4 帶有JavaScript的自定義控制項 925
29.4.1 彈出視窗 925
29.4.2 滾動按鈕 928
29.5 框架 931
29.5.1 框架導航 932
29.5.2 內聯框架 933
29.6 理解Ajax 934
29.6.1 XMLHttpRequest對象 935
29.6.2 Ajax示例 936
29.7 在客戶端回調中使用Ajax 939
29.7.1 創建客戶端回調 940
29.7.2 深入了解客戶端回調 945
29.7.3 自定義控制項里的客戶端回調 946
29.8 總結 949
第30章 ASP.NETAJAX 950
30.1 介紹ASP.NETAJAX 950
30.1.1 客戶端的ASP.NETAJAX:腳本庫 951
30.1.2 伺服器端的ASP.NETAJAX:ScriptManager 952
30.2 伺服器回調 952
30.2.1 ASP.NETAJAX中的Web服務 953
30.2.2 在頁面里放置Web方法 959
30.2.3 ASP.NETAJAX應用程式服務 960
30.3 ASP.NETAJAX伺服器控制項 966
30.3.1 使用UpdatePanel的局部呈現 966
30.3.2 使用Timer的定時刷新 973
30.3.3 使用UpdateProgress的耗時更新 974
30.3.4 管理瀏覽器歷史 976
30.4 深入客戶端庫 979
30.4.1 理解客戶端模型 980
30.4.2 JavaScript的面向對象編程 981
30.4.3 網頁框架 987
30.5 控制項擴展器 991
30.5.1 安裝ASP.NETAJAX控制項工具包 992
30.5.2 AutoCompleteExtender 993
30.5.3 ASP.NETAJAX控制項工具包 996
30.6 總結 999
第31章 使用Web部件頁面的入口網站 1000
31.1 典型門戶頁面 1000
31.2 基本Web部件頁面 1002
31.2.1 創建頁面設計 1002
31.2.2 WebPartManager和WebPartZone 1003
31.2.3 向頁面添加Web部件 1004
31.2.4 定製頁面 1008
31.3 創建Web部件 1010
31.3.1 簡單的Web部件任務 1010
31.3.2 開發高級Web部件 1017
31.3.3 Web部件編輯器 1024
31.3.4 連線Web部件 1029
31.3.5 自定義動詞和Web部件 1036
31.3.6 用戶控制項和高級Web部件 1037
31.3.7 動態上傳Web部件 1040
31.3.8 對Web部件的授權 1044
31.3.9 個性化的最後任務 1045
31.4 總結 1046
第32章 MVC 1047
32.1 MVC和Web表單的選擇 1047
32.2 創建基本的MVC應用程式 1047
32.2.1 創建模型 1048
32.2.2 創建控制器 1049
32.2.3 創建Index視圖 1050
32.2.4 測試(未完成的)應用程式 1050
32.2.5 完成控制器和視圖 1051
32.2.6 修改Site.Master檔案 1053
32.3 擴展基礎的MVC應用程式 1053
32.3.1 配置路由 1054
32.3.2 增加錯誤處理 1055
32.3.3 增加驗證 1056
32.3.4 增強數據存儲訪問 1057
32.3.5 增加對外鍵約束的支持 1059
32.4 自定義視圖 1059
32.4.1 修改視圖 1060
32.4.2 增加視圖數據 1062
32.5 強化模型 1063
32.6 驗證數據 1066
32.6.1 執行基本的驗證 1067
32.6.2 增加驗證標註 1068
32.7 使用動作結果 1071
32.7.1 返回JSON數據 1072
32.7.2 調用其他控制器方法 1072
32.8 總結 1074
第33章 動態數據 1075
33.1 創建動態數據應用程式 1075
33.1.1 創建動態數據網站 1075
33.1.2 檢驗動態數據網站 1077
33.2 深入理解動態數據項目 1080
33.3 自定義動態數據網站 1080
33.3.1 使用模板進行自定義 1081
33.3.2 使用路由進行自定義 1087
33.3.3 使用元數據進行自定義 1094
33.3.4 自定義驗證 1099
33.4 總結 1103
第34章 Silverlight 1104
34.1 理解Silverlight 1105
34.1.1 Silverlight與Flash對比 1106
34.1.2 Silverlight系統需求 1107
34.2 創建Silverlight解決方案 1108
34.2. 1 Silverlight編譯 1109
34.2.2 入口頁面 1110
34.3 創建Silverlight項目 1114
34.3.1 設計Silverlight頁面 1114
34.3.2 理解XAML 1117
34.3.3 設定屬性 1118
34.3.4 XAML 代碼隱藏 1119
34.3.5 處理事件 1120
34.3.6 了解Silverlight類庫 1121
34.4 布局 1122
34.4.1 Canvas 1123
34.4.2 格線 1127
34.5 動畫 1131
34.5.1 動畫基礎知識 1132
34.5.2 定義動畫 1132
34.5.3 StoryBoard類 1133
34.5.4 互動式動畫實例 1135
34.5.5 變換 1138
34.6 Silverlight使用Web服務 1141
34.6.1 創建Web服務 1141
34.6.2 添加Web引用 1142
34.6.3 調用Web服務 1143
34.6.4 配置Web服務URL 1144
34.6.5 跨域Web服務調用 1144
34.7 總結 1146