第1章 Visual Studio 2005 IDE集成开发环境新功能介绍 1
1.1 Visual Studio 2005对程序员的意义 2
1.2 Visual Studio 2005开发工具版本介绍 4
1.3 Visual Studio 2005与Visual Studio.NET 2003开发环境的共存 4
1.4 Visual Studio 2005开发工具安装 7
1.5 创建您的第一个ASP.NET 2.0的WebSite网站 9
1.6 解决方案资源管理器功能图解 12
1.7 解决方案与项目的管理与设置 14
1.8 设计模式与源文件模式 17
1.9 文档大纲窗口 17
1.10 HTML标记导航(Tag Navigation) 18
1.11 源文件模式下控件拖曳的改良 19
1.12 HTML标签格式保留的改良 19
1.13 显示不可见的HTML Elements 20
1.14 文档窗口 20
1.15 窗口位置的配置 23
1.16 Web开发环境的设置 24
1.17 安装部署 27
1.18 Visual Studio 2005 Starter Kit包 30
1.19 范例程序名称列表 32
1.20 结论 33
第2章 Visual Studio 2005高级功能秘技 35
2.1 CodeBeside 36
2.2 CodeBehind 2.0 43
2.3 项目设计工具(Project Designer) 44
2.4 将ASP.NET程序开发服务器Port固定下来的秘技 46
2.5 ASP.NET网站多个.NET Framework版本的设置 48
2.6 aspnet_regiis.exe IIS登录工具 49
2.7 网站数据库的注册 52
2.8 数据库连接字符串的设置与读取 52
2.9 数据库连接设置的加解密 55
2.10 ASP.NET网站特殊文件夹 55
2.11 代码段(Code Snippets) 57
2.12 程序代码重构(Refactoring) 61
2.13 ASP.NET 2.0的编译模型(Compilation Model) 67
2.14 ClientBuildManager类的编译功能 72
2.15 发布网站(Publish Web Site) 74
2.16 项目同时使用C#与VB.NET两种语言及多组件的技巧 75
2.17 结论 78
第3章 SQL Server 2005数据库的安装、管理与使用策略 79
3.1 SQL Server 2005数据库介绍 80
3.2 SQL Server 2005版本介绍 81
3.3 SQL Server 2005 Express的SP2后续新版本及修补更新 83
3.4 软硬件安装需求 87
3.5 谈SQL 2005标准版、SQL 2005 Express、SQL 2000共存安装 90
3.6 安装SQL Server 2005联机丛书 98
3.7 导入北风数据库(Northwind) 100
3.8 SQL Server 2005数据库的设置与管理 102
3.9 在VS 2005 IDE中连接SQL Server数据库 105
3.10 数据库功能介绍 108
3.11 结论 114
第4章 ASP.NET 2.0的Page、Cross Page Posting与Client-Side Script新功能 115
4.1 跨网页公布(Cross-Page Posting) 116
4.2 HtmlHead与HtmlMeta类 127
4.3 Client端Script的增强与改良 131
4.4 Client端的异步Callback(Client-Callback) 144
4.5 ASP.NET网页指示符(Page Directive) 151
4.6 结论 153
第5章 微软ASP.NET 2.0的AJAX利剑——ASP.NET AJAX 155
5.1 AJAX异步技术 156
5.2 AJAX简单范例 157
5.3 AJAX范例程序特点说明 160
5.4 了解AJAX应用程序与ASP.NET AJAX 161
5.5 结论 167
第6章 ASP.NET AJAX服务器控件 169
6.1 以Server端与Client端为中心的两种开发模式 170
6.2 ASP.NET AJAX系统环境安装设置 172
6.3 服务器端的ASP.NET AJAX异步定时器应用 174
6.4 再论ASP.NET AJAX异步更新与传统的页面更新 184
6.5 ASP.NET AJAX服务器控件属性与事件功能解说 188
6.6 ASP.NET AJAX大未来 190
6.7 结论 192
第7章 ASP.NET 2.0其他新增控件介绍 193
7.1 FileUpload文件上传控件 194
7.2 TextBox的自动完成(AutoCompleteType)改良 203
7.3 DropDownList控件的AppendData BoundItems属性 206
7.4 Panel控件的滚动条 208
7.5 MultiView与View控件 209
7.6 Wizard向导控件 214
7.7 结论 234
第8章 全方位的神奇新对象My 235
8.1 My对象含义 236
8.2 My对象与项目类型相依性 239
8.3 My的大分类对象功能简介 240
8.4 My.Application对象 241
8.5 My.Computer对象 248
8.6 My.Forms对象 261
8.7 My.Log对象 262
8.8 My.Resources对象 263
8.9 My.Settings对象 270
8.10 My.User对象 277
8.11 My.WebServices对象 278
8.12 My对象内部运作原理揭秘 283
8.13 结论 284
第9章 GridView与SqlDataSource控件——应用篇 285
9.1 GridView功能特色 286
9.2 GridView与SqlDataSource控件架构 287
9.3 GridView与SqlDataSource声明式语法 288
9.4 GridView控件属性 290
9.5 网站数据库的注册与导入 292
9.6 对VS 2005及GridView向导的正确期许 297
9.7 GridView的DataSourceID vs.DataSource属性 298
9.8 数据控件的七种字段类型(Fields Type)的应用 299
9.9 谈GridView的AJAX异步Callback 341
9.10 GridView分页外观设置 342
9.11 GridView的多个数据表的Table Join查询 344
9.12 GridView结合OnClientClick进行确认操作 346
9.13 结论 347
第10章 GridView与SqlDataSource控件——动态程序篇 349
10.1 GridView对数据处理与事件模式的改变 350
10.2 GirdView控件方法与事件 350
10.3 GridView的CodeBehind撰写模式 352
10.4 GridViewRow的RowType与RowState属性 354
10.5 GridView与多个Table数据表的Join查询 362
10.6 GridView分页与排序功能(Page&Sort) 363
10.7 GridView数据行的选择功能(Selection) 370
10.8 GridView数据行的删除功能(Delete) 375
10.9 GridView数据行的编辑与更新功能 378
10.10 动态创建TemplateField模板字段的原理 382
10.11 GridView表头表尾的跨列跨行、多重表头表尾 388
10.12 GridView对背景图片的支持 397
10.13 GridView数据行的外部更新 398
10.14 GridView的数据库事务 401
10.15 结论 402
第11章 新一代数据访问方式Data Source控件 403
11.1 祭司对Data Source控件的思考 404
11.2 Data Source控件诞生的使命 404
11.3 Data Source数据源控件简介 406
11.4 Data Source控件架构 406
11.5 DataSourceID属性与数据绑定控件 408
11.6 DataSourceMode数据源模式 409
11.7 DataSource控件参数类型 410
11.8 六种参数类型的应用 413
11.9 参数方向(Parameter Direction) 418
11.10 Data Source控件的数据筛选过滤机制 419
11.11 Data Source控件的缓存 426
11.12 Data Source控件的分页与排序原理解说 428
11.13 Data Source控件数据库事务 429
11.14 SqlDataSource控件事务机制的诡异之处 435
11.15 SqlDataSource控件对Stored Procedure存储过程的访问 436
11.16 ObjectDataSource控件 440
11.17 数据访问冲突检测 451
11.18 数据源控件与ADO.NET之间的抉择时机 459
11.19 结论 461
第12章 DetailsView、FormView与DataList控件介绍 463
12.1 DetailsView控件 464
12.2 FormView控件 489
12.3 DataList控件 498
12.4 结论 502
第13章 ASP.NET 2.0网站导航功能(Web Site Navigation) 503
13.1 ASP.NET 2.0网站导航功能的意义 504
13.2 网站导航控件简介 505
13.3 创建网站导航地图路径 507
13.4 TreeView控件 510
13.5 SiteMapPath服务器控件 525
13.6 Menu服务器控件 531
13.7 通过SiteMapProvider API访问多个SiteMap文件 542
13.8 SiteMap类API 547
13.9 结论 550
第14章 Master Pages母版页 551
14.1 Master Pages母版页概观 552
14.2 创建Master Pages母版页 554
14.3 使用Master Pages创建内容页 558
14.4 Master Pages母版页运行原理 560
14.5 嵌套Master Pages(Nested Master Pages) 562
14.6 在内容页中以程序读取Master Page相关对象 565
14.7 结论 566
第15章 ASP.NET 2.0网站管理工具与Configuration配置API 567
15.1 注册ASP.NET网站数据库与设置Provider 568
15.2 ASPNET_REGSQL数据库注册工具 568
15.3 ASP.NET网站管理工具(Web Site Administration Tool) 572
15.4 当没有安装VS2005时如何使用ASP.NET网站管理工具 592
15.5 ASP.NET MMC Snap-In嵌入式管理单元 593
15.6 配置管理API(Configuration API) 596
15.7 Web.config配置文件加密 602
15.8 ASPNET_REGIIS命令的IIS注册与Web.config加密解密 607
15.9 结论 609
第16章 ASP.NET网页安全管理的验证与授权 611
16.1 祭司的话 612
16.2 验证与授权的定义 612
16.3 验证与授权在Windows操作系统上的权力根源 614
16.4 IIS网站目录安全设置 616
16.5 Windows验证模式 617
16.6 Forms验证模式 619
16.7 Forms验证模式机制的探讨 623
16.8 结论 625
第17章 ASP.NET 2.0网页安全管理的Login控件 627
17.1 祭司的话 628
17.2 Login相关控件 629
17.3 检查ASP.NET 2.0网站安全设置相关功能 630
17.4 Login控件 630
17.5 自定义Login控件模板 637
17.6 LoginName控件 640
17.7 LoginStatus控件 641
1 7.8 LoginView控件 642
17.9 创建用户向导CreateUserWizard控件 645
17.10 变更密码ChangePassword控件 646
17.11 恢复密码PasswordRecovery控件 647
17.12 结论 650
第18章 ASP.NET 2.0网页安全管理的Membership与Role API 651
18.1 祭司的话 652
18.2 Membership成员资格 653
18.3 Membership背后运行的秘密 684
18.4 角色管理(Role Management) 686
18.5 ASP.NET 2.0网页授权(Authorization) 706
18.6 结论 709
第19章 Profile用户设置文件 711
19.1 Profile用户设置文件应用范围 712
19.2 Profile设置文件对用户数据的存储 713
19.3 定义Profile用户设置文件 714
19.4 更新Profile用户设置文件 717
19.5 Profile用户设置文件与用户身份验证的关系 720
19.6 读取全部用户的Profile设置文件数据 721
19.7 Profile用户设置文件运行原理 725
19.8 匿名用户Profile(Anonymous Profile) 728
19.9 存储与使用匿名用户Profile设置文件 730
19.10 匿名者Profile迁移(Migration) 733
19.11 ProfileModule类 736
19.12 Profile_Personalize事件 737
19.13 ProfileAutoSaving事件 742
19.14 ProfileManager类 745
19.15 以程序读取Web.config文件中的Profile Property属性设置 753
19.16 以程序动态创建Profile设置文件 755
19.17 以程序读取anonymousIdentification相关属性设置 757
19.18 加密Profile设置文件区块强化安全性 759
19.19 结论 759
第20章 Web Parts Framework 761
20.1 Web部件架构 762
20.2 Web部件(Web Parts)概观 770
20.3 细说Web部件控件集合 771
20.4 Web部件的五种显示模式(DisplayMode) 775
20.5 Web部件的个性化数据的管理 808
20.6 结论 815
第1章 Visual Studio 2005 IDE集成开发环境新功能介绍 1
范例1-1 加入第二个网站项目 14
范例1-2 设置显示解决方案 15
第2章 Visual Studio 2005高级功能秘技 35
范例2-1 Partial Class的应用 41
范例2-2 固定ASP.NET程序开发服务器的Port 46
范例2-3 以aspnet_regiis.exe手动注册ASP.NET版本 50
范例2-4 读取Web.config中的数据库连接设置 54
范例2-5 使用代码段 58
范例2-6 使用重构的提取方法 63
范例2-7 使用重构的重新命名 65
范例2-8 动态编译的证明 68
范例2-9 使用aspnet_compiler.exe预编译 70
范例2-10 通过程序API运行编译工作 72
范例2-11 项目同时使用C#与VB类程序 75
第3章 SQL Server 2005数据库的安装、管理与使用策略 79
范例3-1 VS 2005连接数据库 106
范例3-2 定义视图 110
第4章 ASP.NET 2.0的Page、Cross Page Posting与Client-Side Script新功能 115
范例4-1 初步体验跨网页公布 117
范例4-2 使用@PreviousPageType指示符 120
范例4-3 使用@Reference指示符 122
范例4-4 使用HtmlHead类添加CSS设置 127
范例4-5 使用HtmlMeta类添加<Meta>设置 129
范例4-6 设置控制项成为焦点(Focus) 131
范例4-7 设置WebForm窗体默认按钮与焦点 133
范例4-8 Client端的Confirm确认对话框 136
范例4-9 在Server端的Button引发Client端Click事件(打开网页) 138
范例4-10 使用RegisterClientScriptInclude动态注册.js文件 141
范例4-11 使用RegisterClientScriptBlock动态注册JavaScript指令区块 143
范例4-12 使用RegisterStartUpScript动态注册JavaScript指令 143
范例4-13 使用Calback进行异步数据库查询 145
范例4-14 使用Callback进行异步数据库查询(简化版) 149
第5章 微软ASP.NET 2.0的AJAX利剑——ASP.NET AJAX 155
范例5-1 AJAX简单范例 157
第6章 ASP.NET AJAX服务器控件 169
范例6-1 ASP.NET AJAX服务器端时钟范例 177
范例6-2 ASP.NET AJAX服务器端时钟范例GDI+加强版 180
范例6-3 Partial-Page Rendering局部更新与传统Postback更新之对比 184
范例6-4 日历控件结合ASP.NET AJAX异步 186
范例6-5 GridView控件结合ASP.NET AJAX异步 187
第7章 ASP.NET 2.0其他新增控件介绍 193
范例7-1 FileUpload控件上传文件 194
范例7-2 FileUpload多个文件上传 196
范例7-3 限制FileUpload文件的上传类型 200
范例7-4 设置TextBox控件AutoCompleteType自动完成属性 204
范例7-5 使用DropDownList控件的AppendDataBoundItems属性 207
范例7-6 使用Panel控件的滚动条 208
范例7-7 使用MultiView与View控件显示图片 209
范例7-8 MultiView结合Menu控件 212
范例7-9 以Wizard控件创建会员帐号申请 215
范例7-10 编辑Wizard控件模板 227
范例7-11 Wizard控件事件的应用 230
第8章 全方位的神奇新对象My 235
范例8-1 使用My.Application.Info对象读取应用程序信息 243
范例8-2 使用My.Application.Log对象写入Log文件 245
范例8-3 使用My.Application.Log对象写入事件查看器(EventLog) 246
范例8-4 使用My.Computer.Info对象读取计算机信息 250
范例8-5 使用My.Computer.Audio对象播放音效 251
范例8-6 使用My.Computer.Clipboard对象读取剪贴板图片 252
范例8-7 使用My.Computer.FileSystem对象读取文本文件 255
范例8-8 使用My.Computer.Network对象Ping计算机IP 257
范例8-9 使用My.Computer.Ports对象访问计算机COM Port 258
范例8-10 使用My.Computer.Registry对象读取Registry文件 260
范例8-11 使用My.Forms对象动态起始Windows窗体 261
范例8-12 使用My.Log对象读取Log信息 262
范例8-13 使用My.Resources对象读取资源文件图片 265
范例8-14 在Web中使用My.Resources对象读取资源文件图片 267
范例8-15 使用My.Settings对象访问设置文件 276
范例8-16 使用My.User对象(Web项目) 277
范例8-17 使用My.WebServices对象读取Web Services 281
第9章 GridView与SqlDataSource控件——应用篇 285
范例9-1 ASP.NET网站数据库连接设置 292
范例9-2 VS 2005对SQL Server数据库拖曳的支持 294
范例9-3 使用BoundField数据绑定字段 303
范例9-4 标准数值格式化字符串(Standard Numeric Format Strings)的应用 306
范例9-5 BoundField字段DataFormatString字符串格式化的应用 307
范例9-6 使用ButtonField按钮字段 312
范例9-7 ButtonField按钮字段的格式化 316
范例9-8 使用CommandField命令按钮字段 318
范例9-9 自定义CommandField命令按钮字段 320
范例9-10 使用CheckBoxField复选框字段 322
范例9-11 使用HyperLinkField超链接字段 324
范例9-12 使用HyperLinkField超链接字段(动态程序代码) 326
范例9-13 使用ImageField图像字段 329
范例9-14 GridView动态显示数据库图片 332
范例9-15 创建TemplateField模板字段 336
范例9-16 将Field字段转换成模板 339
范例9-17 设置GridView控件的分页 343
范例9-18 GridView显示Client端的Confirm对话框 346
第10章 GridView与SqlDataSource控件——动态程序篇 349
范例10-1 判断GridViewRow的RowState 355
范例10-2 GridView数据行的光棒效果 359
范例10-3 GridView数据行的光棒效果(JavaScript版) 360
范例10-4 GridView显示多个Table Join查询结果 362
范例10-5 GridView分页使用图片按钮并添加分页码显示 364
范例10-6 GridView图片与数字分页按钮并存 366
范例10-7 GridView分页与排序程序技巧 367
范例10-8 GridView选择数据行及动态字段排序 370
范例10-9 Master-Details数据明细查询 374
范例10-10 GridView数据行的删除功能 375
范例10-11 删除多重字段组成唯一识别键值的数据行 377
范例10-12 GridView数据行的编辑与更新功能 379
范例10-13 用程序动态创建TemplateField模板字段 383
范例10-14 HTML的表格跨列跨行 389
范例10-15 GridView多重表头与表尾的跨列跨行 390
范例10-16 GridView数据行的折行 394
范例10-17 创建GridView表头表尾与数据行的背景图片 397
范例10-18 GridView数据行的外部更新 399
第11章 新一代数据访问方式Data Source控件 403
范例11-1 以DataReader作为数据源的绑定 409
范例11-2 使用ControlParameter参数类型 413
范例11-3 使用CookieParameter参数类型 414
范例11-4 使用FormParameter参数类型 415
范例11-5 使用QueryStringParameter参数类型 416
范例11-6 使用SessionParameter参数类型 417
范例11-7 使用一般数值或字符串当参数DefaultValue 418
范例11-8 参数方向的设置 419
范例11-9 使用SelectCommand筛选过滤数据 421
范例11-10 使用FilterExpression筛选数据 423
范例11-11 添加员工基本数据的ADO.NET 1.0数据库事务程序 429
范例11-12 多笔式的ADO.NET 1.0数据库事务 430
范例11-13 SqlDataSource控件的数据库事务 431
范例11-14 连续大量数据添加至数据库的事务 433
范例11-15 创建存储过程 436
范例11-16 以ADO.NET调用存储过程 437
范例11-17 以SqlDataSource程序代码访问存储过程 438
范例11-18 以SqlDataSource向导访问存储过程 439
范例11-19 以ObjectDataSource调用业务对象程序 442
范例11-20 ObjectDataSource与DataSet Designer的结合 447
范例11-21 冲突检测的OverwriteChanges 454
范例11-22 冲突检测的CompareAllValues 456
第12章 DetailsView、FormView与DataList控件介绍 463
范例12-1 创建基本的DetailsView 467
范例12-2 读取DetailsView数据项的字段标题及内容信息 470
范例12-3 DetailsView模式的应用 474
范例12-4 DetailsView的Style模式设置 476
范例12-5 DetailsView外观调整 477
范例12-6 创建DetailsView表头表尾与数据行的背景图片 480
范例12-7 自定义DetailsView模板功能 481
范例12-8 动态显示数据库中Image字段图片 488
范例12-9 访问FormView的数据与模式 492
范例12-10 自定义命令按钮 496
范例12-11 DataList控件的ExtractTemplateRows属性运用 498
范例12-12 显示数据库Image图片 500
范例12-13 DataList字段项的数据访问 500
第13章 ASP.NET 2.0网站导航功能(Web Site Navigation) 503
范例13-1 创建SiteMap格式的网站导航结构文件 507
范例13-2 创建XML格式的网站导航结构文件 509
范例13-3 TreeView使用SiteMapDataSource绑定至SiteMap文件 511
范例13-4 TreeView绑定至XML文件 512
范例13-5 使用TreeView节点编辑器创建TreeView控件 514
范例13-6 以TreeNode节点方式创建TreeView控件 516
范例13-7 通过程序与XML文件进行连接以创建TreeView控件 518
范例13-8 检查TreeView被勾选的节点 523
范例13-9 TreeView控件的TreeNode节点折叠与展开事件 523
范例13-10 置换TreeView节点文字 525
范例13-11 创建基本的SiteMapPath控件 526
范例13-12 SiteMapPath控件的ItemCreated事件应用 530
范例13-13 创建Menu控件菜单菜单 532
范例13-14 静态与动态菜单的应用 533
范例13-15 Menu使用SiteMapDataSource绑定至SiteMap文件 535
范例13-16 Menu绑定至XML文件 535
范例13-17 使用菜单项编辑器(MenuItem Editor)创建 535
范例13-18 以MenuItem项创建Menu控件 536
范例13-19 通过程序与XML文件进行绑定以创建Menu控件 538
范例13-20 Menu控件的MenuItemDataBound事件应用 541
范例13-21 TreeView控件使用多个SiteMap文件定义 542
范例13-22 TreeView控件使用多个XML文件定义 545
范例13-23 读取网站导航RootNode根节点信息 547
第14章 Master Pages母版页 551
范例14-1 创建Master Pages母版页 554
范例14-2 创建嵌套Master Pages母版页 562
范例14-3 在内容页中以程序读取Master Page相关对象 565
第15章 ASP.NET 2.0网站管理工具与Configuration配置API 567
范例15-1 使用ASP.NET网站管理工具 573
范例15-2 创建ASP.NET用户帐号 576
范例15-3 创建Role角色 580
范例15-4 应用程序设置操作 585
范例15-5 另类的网站应用程序脱机秘技 588
范例15-6 独立运行ASP.NET网站管理工具 592
范例15-7 使用ASP.NET配置设置工具设置SQL Server数据库连接 593
范例15-8 读取<connectionStrings>配置节连接字符串设置值 598
范例15-9 连续读取<connectionStrings>配置节连接字符串 599
范例15-10 读取<appSettings>配置节应用程序设置值 599
范例15-11 连续读取<appSettings>配置节应用程序设置值 600
范例15-12 读取<mailSettings>配置节SMTP Mail设置 601
范例15-13 应用程序<appSettings>配置节的加密 602
范例15-14 数据库连接字符串ConnectionString配置节的加密 606
范例15-15 使用ASPNET_REGIIS命令进行Web.config的加密解密 607
第16章 ASP.NET网页安全管理的验证与授权 611
范例16-1 Windows验证模式的使用 618
范例16-2 Forms验证模式的使用 620
第17章 ASP.NET 2.0网页安全管理的Login控件 627
范例17-1 使用Login控件 632
范例17-2 自定义Login控件的验证程序 634
范例17-3 自定义Login控件模板 637
范例17-4 使用LoginName控件 640
范例17-5 使用LoginStatus控件 642
范例17-6 自定义LoginView模板 643
范例17-7 自定义RoleGroup模板 644
范例17-8 使用CreateUserWizard控件创建用户帐号 645
范例17-9 使用ChangePassword控件 646
范例17-10 使用PasswordRecovery控件 647
第18章 ASP.NET 2.0网页安全管理的Membership与Role API 651
范例18-1 用Membership.CreateUser()方法创建用户帐号 659
范例18-2 利用MembershipCreateStatus获取帐号创建成功或失败的消息 662
范例18-3 利用Membership.Validate()方法验证用户身份 663
范例18-4 利用Membership.FindUserByName()及FindUser-ByEmail()寻找用户 665
范例18-5 利用Membership.GetAllUsers()读取所有用户资料 667
范例18-6 利用Membership.Update()更新用户资料 668
范例18-7 统计目前在线用户 670
范例18-8 利用Membership.DeleteUser()删除用户帐号 672
范例18-9 读取用户密码 674
范例18-10 利用MembershipUser类改变或重设用户密码 676
范例18-11 利用MembershipUser来改变或重设安全问题及解答 678
范例18-12 利用MembershipUser.UnlockUser()解除被锁定的用户帐号 679
范例18-13 是否允许用户帐号能够被验证 682
范例18-14 利用Roles.GetAllRoles()方法取得Roles数据库所有角色组 690
范例18-15 添加与删除角色 692
范例18-16 将一个用户加入一个角色(一对一) 695
范例18-17 将一个用户加入多个角色(一对多) 696
范例18-18 将多个用户加入一个角色(多对一) 699
范例18-19 将多个用户加入多个角色(多对多) 700
范例18-20 将一个用户自一个角色中移除(一对一) 702
范例18-21 将一个用户自多个角色中移除(一对多) 702
范例18-22 将多个用户自一个角色中移除(多对一) 702
范例18-23 将多个用户自多个角色中移除(多对多) 703
范例18-24 使用Roles.GetRolesForUser()方法读取用户角色 703
范例18-25 使用Roles.GetUsersInRole(rolename As String)方法读取用户角色 704
范例18-26 判断用户是否属于某个角色 705
范例18-27 创建用户与角色对网页访问的授权 707
第19章 Profile用户设置文件 711
范例19-1 Profile用户设置文件的初步体验 714
范例19-2 更新Profile用户设置文件 718
范例19-3 读取所有用户Profile设置文件(DropDownList) 721
范例19-4 读取所有用户Profile设置文件(CheckBoxList) 723
范例19-5 存储与使用匿名用户Profile设置文件 731
范例19-6 匿名者Profile设置文件的迁移 733
范例19-7 Profile设置文件结合Role角色与Profile_Personalize事件 737
范例19-8 利用Profile_ProfileAutoSaving事件动态改变Profile自动存储机制 743
范例19-9 以ProfileManager读取Profile的相关属性 746
范例19-10 以ProfileManager.DeleteProfile方法删除单一用户Profile设置文件 747
范例19-11 以ProfileManager.DeleteProfiles方法删除多个用户Profile设置文件 748
范例19-12 删除与查询超过指定日期时间内未登录用户的Profile 751
范例19-13 以程序读取Web.config文件中的Profile Property属性设置 753
范例19-14 以程序动态创建Profile设置文件 755
范例19-15 读取匿名身份识别配置节属性 758
第20章 Web Parts Framework 761
范例20-1 设计第一个Web部件页面 763
范例20-2 设计模式的使用 779
范例20-3 编辑模式的使用 786
范例20-4 Web部件属性设置导出(Export) 791
范例20-5 目录模式下的DeclarativeCatalogPart 796
范例20-6 目录模式下的PageCatalogPart 801
范例20-7 目录模式下的导入Web部件控件 805
范例20-8 连接区域 808
范例20-9 使用WebPartManager.Personalization进行个性化数据重设 808
范例20-10 使用PersonalizationAdministration类读取及重设个性化设置 812