link.springer.com3a978-1-4302-2512-6%2f1.pdfindex 1521 server controls, 1272–1288 managing browser...
TRANSCRIPT
I n d e x
■ ■ ■
1515
■Symbols and Numerics - operator, DataView, 345 # (number sign), URL encoding, 247 $ expressions, 354–355
custom expression builders, 355–358 % character, URL encoding, 247 % operator, DataView, 345 & character, URL encoding, 247 & entity, HTML, 112 > entity, HTML, 112 < entity, HTML, 112 entity, HTML, 112, 1141 " entity, HTML, 112 * operator, DataView, 345 * quantifier, regular expressions, 165 * wildcard, SQL queries using, 288 .ascx file see ascx files .asmx file see asmx files .aspx file see aspx files .NET see alphabetized as NET .svc files, 36 .vb file see vb files / operator, DataView, 345 ? quantifier, regular expressions, 165 @ symbol
parameterized commands, 374, 379, 382 Parameters collection, 378
@@ERROR value, 305 @@IDENTITY function, 299 @@TRANCOUNT variable, 306 @Count parameter, 426 @Notes parameter, 438 @Start parameter, 426 @TitleOfCourtesy parameter, 441 + (plus sign), URL encoding, 247 + operator, DataView, 345 + quantifier, regular expressions, 165 = operator, DataView, 345 < operator, DataView, 345 > operator, DataView, 345
2D drawing, Silverlight, 1459 3D charts, 1178 3DES (Triple DES), 190, 191
■A -A switch, aspnet_regsql.exe, 889, 999 a tag, 128, 139 Abandon method, 257, 258 AbortPostBack function, 1284 absolute expiration, data caching, 492, 493 absolute links
cookieless state, 265 absolute positioning, 29, 1482 abstract encryption classes, 1036, 1039
Create method, 1039 GenerateKey method, 1039
access control configuring access rules with WAT, 982 directories, 969–970 files, 970 roles, 970–972 users, 967–969
access control lists (ACLs) GetAccessControl method, 528, 529 IdentityReference class, 957 SetAccessControl method, 528, 529
access keys managing focus, 146
AccessDataSource control, 368 AccessKey property
TextBox, 146 WebControl, 138
Accordion control, 740, 1312 account permissions, Windows, 799 account tokens see tokens AccountController class, 1389 AccountOperator role, 953 ACID properties, transactions, 302 AcquireRequestState event, 185 Action property, DynamicDataRoute, 1433
■ INDEX
1516
action results, MVC, 1409–1412 ActionLink method, MVC, 1396 ActionResult class, MVC, 1409 Active Directory, 856, 884 ActiveDirectoryMembershipProvider class, 883,
884 ActiveDirectoryMembershipUser class, 883, 884 ActiveStepChanged event, 746, 1285 ActiveStepIndex property, 745, 746, 1286 ActiveViewIndex property, 740 ActiveXControls property, 1124 Ad element, Advertisement file, 173 adaptive rendering, 1126 AdCreated event, 174 Add Application Pool dialog box, 827 Add ASP.NET Folder submenu, 37 add element, web.config, 197 Add FTP Site Publishing Wizard, 814 Add Managed Handler dialog box, 832 Add method
AggregateCacheDependency class, 501 MultiView control, 739 OutputCacheProvider class, 487, 488
Add New Item window, websites, 53 Add Reference dialog box, 44, 215 Add Service Reference dialog box, 1509 Add Tab option, 38 Add Virtual Directory dialog box, 821 Add Web Site dialog box, 820, 821 Add_Data folder, 1421 add_init method, 1299 AddArc method, 1156 AddAt method, 739 AddAttribute method, 1111 AddAttributesToRender method, 1117, 1132
rollover buttons, JavaScript, 1223 AddBezier method, 1156 AddBeziers method, 1156 AddClosedCurve method, 1156 AddCurve method, 1156 AddDays method, 873 AddEllipse method, 1156 addHandler method, HoverButton, 1300 AddHistoryPoint method, 1285 AddLine method, 1157 AddLines method, 1157 AddNode method, 769 AddOnPreRenderCompleteAsync method, 513,
514, 524, 525 AddPath method, 1157 AddPie method, 1157 AddPolygon method, 1157
AddRectangle method, 1157 AddRectangles method, 1157 Address property, ProfileCommon, 1012 AddString method, 1157 AddStyleAttribute method, 1111 AddUsersToRole method, 984, 986 AddUsersToRoles method, 984 AddUserToRole method, 984 AddUserToRoles method, 984 AddWithValue method, 301 Administrator credentials
website deployment, 800 Administrator role, WindowsBuiltInRole enum,
953 ADO.NET, 273
see also data access architecture, 274–278 classes, 277–278 client-initiated transactions, 303 Command class, 285–286 Connection class, 278–284 connection pooling, 283–284 connection-based objects, 277 content-based objects, 277 data providers, 274–276 DataAdapter class, 334–342 DataColumn class, 333 DataReader class, 286–287 DataRow class, 333 DataSet class, 332–334, 341 DataTable class, 333 DataView class, 342–350 ExecuteNonQuery method, 286, 294 ExecuteReader method, 286, 287–288 ExecuteScalar method, 286, 293 extensibility of ADO.NET provider model,
275 generic data access code, 276 generic data provider objects, 274 interfaces for ADO.NET objects, 313 namespaces, 277–278 parameterized commands, 297–298 promotable transactions, 304 provider-agnostic code, 311–315
creating factories, 311–312 creating objects with factories, 312–313 queries with, 313–315
SQL injection attacks, 294–297 standardization in, 276 stored procedures, 299–301 transactions, 302–310
ASP.NET web applications, 303–308 client-initiated transactions, 306–308
■ INDEX
1517
isolation levels, 308–309 savepoints, 310
user instance connections, 280, 281 ADO.NET DataSet
XML and, 677–679 ADO.NET Entity Data Model, 582 Adobe Flash
Silverlight compared, 1459–1460 adoption, XML, 623 AdRotator control, 173–174 advapi32.dll file, 960, 961 Advertisement file, AdRotator, 173, 174 AES (Advanced Encryption Standard), 191 AffectedRows property
detecting concurrency conflicts, 470 aggregate dependencies, 501–502 aggregate functions, SQL, 349 AggregateCacheDependency class, 501 aggregation, LINQ expressions, 573–574 AJAX (Asynchronous JavaScript and XML),
1190, 1229–1236 see also ASP.NET AJAX building Ajax-style page, 1231–1236 client callbacks in custom controls,
1244–1249 comparing postbacks and callbacks, 1244 disabling event validation, 1242–1243 handling responses, 1231 sending requests, 1230–1231 UpdatePanel control, 1245 using with client callbacks, 1236–1249 writing client-side scripts, 1240–1242 XMLHttpRequest object, 1230–1231
AJAX Extensions Toolbox tab, 38 Ajax.NET library, 1236 AjaxControlToolkit.dll assembly, 1304, 1305 AjaxControlToolkitSampleSite folder, 1304 alert function, JavaScript, 1192 AlgorithmName property, 1044, 1047, 1050 algorithms, encryption
asymmetric, 1038, 1050–1053 symmetric, 1037–1038, 1043–1050
Alias box, Add Virtual Directory dialog, 821 aliases
using ClientTarget property, 1125 allow rule, URL authorization, 966, 967
role access, 971 user access, 967, 968
allowAnonymous attribute, 1003, 1015 AllowClose property, WebPart, 1331, 1334,
1347, 1350 AllowConnect property, WebPart, 1331
allowCustomSqlDatabase attribute, 263 AllowEdit property, WebPart, 1331 AllowHide property, WebPart, 1331 AllowMinimize property, WebPart, 1331, 1350 allowOverride attribute, 194 AllowPaging property, 424, 452 AllowReturn property, WizardStep, 743 AllowSorting property, GridView, 418, 419 AllowZoneChange property, WebPart, 1332 alt attribute, img tag, 435 AlternateText element, AdRotator, 174 AlternatingItemTemplate property
GridView, 433 ListView, 444
AlternatingRowStyle property, GridView, 409 AlwaysVisibleControlExtender control, 1309 ampersand
& entity, HTML, 112 URL encoding, 247
Ancestors method, XElement, 653 anchor tag, HtmlAnchor, 128 AND operator, DataView, 345 And operator, Where clause, LINQ, 570 AndAlso operator, LINQ, 570 Animation class, Silverlight, 1498
animating transforms, 1506 animation, Silverlight, 1460, 1494–1507
ColorAnimation class, 1494 configuring properties, 1498 creating animations, 1494 data types, 1494 DoubleAnimation class, 1494 frame-based animation, 1494 key frame animation, 1495 linear interpolation, 1495 property-based animation, 1494 Storyboard class, 1495–1497 time-based animation, 1494 transforms, 1503–1507 XAML markup, 1495
AnimationExtender control, 1309 annotations
adding validation annotations, MVC, 1406–1408
anonymous access, forms authentication, 859 Anonymous Authentication module
denying access to anonymous users, 951 anonymous method, 1076 anonymous profiles, 1015–1017
anonymous user log in, 1016–1017 deleting old anonymous sessions, 1016
anonymous types feature, VB, 568
■ INDEX
1518
anonymous users denying access to, 950–951
forms authentication, 863–864 AnonymousID property, HttpRequest, 106 anonymousIdentification element, 1015 Answer ID
CreateUserWizard template, 921 PasswordRecovery template, 916
AnswerLookupError event, PasswordRecovery, 914
antialiasing, 1152, 1153 AOL property, HttpBrowserCapabilities, 1124 app switch, aspnet_regiis.exe, 210 App.xaml file, Silverlight, 1470 App.xaml.vb file, Silverlight, 1470 App_Browsers directory, 183 App_Code directory, 182
binding chart to object datasource, 1181 configuring custom HTTP handler, 221 creating advanced HTTP handler, 224 creating custom HTTP handler, 219 creating Dynamic Data website, 1416 custom controls using GDI+, 1168 custom expression builders, 358 custom server controls, 1109 Dynamic Data projects, 1421 generating data model, LINQ to Entities, 582 .NET components, ASP.NET, 210, 211 storing several related settings, 204 using component through, 213–214 using configuration-free HTTP handlers,
222 using custom server controls, 1112
App_Data directory, 183 attaching user instance database, 281 creating Dynamic Data website, 1415 creating web part pages, 1320 Visual Studio support for user instance
databases, 281 App_GlobalResources directory, 183 App_LocalResources directory, 183 App_Themes directory, 183, 711, 712 App_WebReferences directory, 183 AppearanceEditorPart class, 1348, 1350 Append value, FileMode, 546 AppFabric, Windows Server, 486 AppInitialize method, 823, 824 applet tags, script injection attacks, 1210 Application class, AJAX, 1298–1299
client-side AJAX control, 1302 Application collection, 269 Application directive
shared application variables, 268
application directory structure, 182–183 application domain, 179–180
connection pooling, 284 application events, 185–188 application integration, XML, 621 application lifetime, 181 Application object, 105, 106 application pool account
website deployment, 799 application pools, 181, 826–829 Application Pools, IIS Manager, 803 application services
ApplicationServices.dll assembly, 43 application services, AJAX, 1264–1272
authentication service, forms, 1265–1267 profile service, 1270–1272 role service, 1267–1270 security, 1269
application state, 266–270 backward compatibility with classic ASP,
268 performance, 267 shared application variables, 268–270 state management options compared, 235 storing application-wide constants, 267 storing frequently used information, 267
Application State section, trace log, 114 application updates, ASP.NET, 181 application warm-up feature
configuring, 829–830 managing websites, 829–830 preparing IIS, 829
Application Warm-Up icon, IIS, 829, 830 Application_AcquireRequestState event, 185 Application_AuthenticateRequest event, 185,
985, 986 Application_AuthorizeRequest event, 185 Application_BeginRequest event, 110, 185 Application_Disposed event, 186 Application_End event, 186, 188 Application_EndRequest event, 185 Application_Error event, 186, 188
using PrincipalPermission attribute, 974, 975
Application_OnEndRequest event, 184 Application_PostRequestHandlerExecute
event, 185 Application_PreRequestHandlerExecute event,
185 Application_ReleaseRequestState event, 185 Application_ResolveRequestCache event, 185 Application_Start event, 186, 188
URL routing, 775
■ INDEX
1519
Application_UpdateRequestCache event, 185 Applicationhost.config file
configuring IIS 7.x, 944, 946 feature delegation, 948 native authentication module, 947 registering HTTP handlers, 219
application-level tracing, 118–119 ApplicationName property
configuring membership in IIS 7.x, 925 RoleProvider, 1097 SettingsProvider, 1018 SqlMembershipProvider, 894, 895, 896 SqlRoleProvider, 979
ApplicationPath property, 106, 201 applications, 179
ASP.NET apps, 179–183 extending HTTP pipeline, 217–230 .NET components, 210–217
ASP.NET configuration, 188–210 aspnet_Applications table, 999 creating Dynamic Data apps, 1415–1421 creating MVC app, 1378–1385 extending MVC app, 1385–1393 using membership API with, 925–927
Applications column application pools, IIS, 827
Apply Styles window, Visual Studio, 35 applying stylesheet rules, 708, 709
ApplyChanges method creating custom web part editor, 1352
ApplyFormatInEditMode property, 404 apply-templates command
transforming XML content, 660 ApplyUpdate function
building Ajax-style page, 1235 AppManifest.xml file, 1463, 1470 AppSettings collection, 197 appSettings element, web.config, 192,
197–198 $ expressions, 355 changing settings in, 201 limitations of, 204 programmatic encryption, 209 values in, 198 WebConfigurationManager class, 200
AppSettings property WebConfigurationManager, 199, 200, 202 WebConfigurationSettings, 197
AppSettingsExpressionBuilder, 355 architecture
ADO.NET, 274–278 ASP.NET AJAX, 1289
custom membership and roles providers, 1067–1069
session state, 255–257 Archive value, FileAttributes, 535 arcs
AddArc method, 1156 DrawArc method, 1153
ARGB color value, 142 ArgumentException class, 614 array data types
web services, AJAX, 1258 Array type, AJAX
extended JavaScript types, 1294 Array class
IndexOf method, 440 asax files
global.asax application file, 183–188 ASC attribute
sorting, DataView, 344 ASCII encoding, 548 ascx files, 36
user controls, 683, 684, 685 AsDataView method, 578, 579 AsEnumerable method, LINQ, 578 ashx files, 221
WebHandler directive, 222 asmx files, 36
ASP.NET AJAX, 1256, 1263 ASP.NET applications, 180
.asmx web services, 1255 asp tag controls
BulletedList, 151 Button, 139 CheckBox, 139 CheckBoxList, 151 CompareValidator, 158 CustomValidator, 158 DropDownList, 151 FileUpload, 139 HiddenField, 139 HyperLink, 139 Image, 139 ImageButton, 139 ImageMap, 139 Label, 139 LinkButton, 139 ListBox, 151 Panel, 139 RadioButton, 139 RadioButtonList, 151 RangeValidator, 158 RegularExpressionValidator, 158 RequiredFieldValidator, 158
■ INDEX
1520
Table, 139 TableCell, 139 TableRow, 139 TextBox, 139 ValidationSummary, 158
ASP.NET, 3 Add ASP.NET Folder submenu, 37 adding assembly references, 42–45 application events, 185–188 application state, 266–270 asynchronous pages, 512, 525 browser support, 11 caching, 475–512 code model, 52–58 code-behind files, 36 CodeFile attribute, 55 Common Language Runtime, 8–9 compilation, 4–6 configuration, 11–12
Windows authentication, 946 configuration file, 36 cookies, 254–255 core assemblies for ASP.NET pages, 43 data binding, 351 deployment, 11–12 editor web parts, 1350 events, 41 evolution of, 12–19 file types, 36 global application file, 36 HTML controls, 10 Inherits attribute, 55 integration with .NET framework, 3–4 LINQ, 14 multilanguage nature of, 6–7 object-oriented programming, 9–10 page rendering, 100 partial classes, 55 pool of application objects, 184 precompilation, 4, 6 request validation, 1210–1215 security controls, membership API, 898–923 security model, 837–851 server controls, 123 session state, 255–266 Silverlight, 19 special ASP.NET directories, 182 Src attribute, 55 state management, 234–236 System.Web.dll assembly, 43 user control files, 36 using GDI+ in, 1149 view state, 236–245
web controls, 10 Web Development Helper tool, 69 web page files, 36 web services files, 36 web.config transformation feature, 36 XHTML compliance, 82
ASP.NET 1.0 and 1.1, 12 ASP.NET 2.0, 12 ASP.NET 3.5, 14 ASP.NET 4, 17
Menu control, 793 navigation changes in, 737 rich data control changes in, 401 server control changes in, 123 state management changes in, 233 web forms changes in, 71
ASP.NET AJAX, 15–16, 1251–1253 see also AJAX Application class, 1298–1299 application services, 1264–1272
authentication service, forms, 1265–1267
profile service, 1270–1272 role service, 1267–1270
architecture, 1289 client libraries, 1288–1303 client-side, 1251, 1252–1253 client-side AJAX control, 1300–1303 control extenders, 1303–1313 extended JavaScript types in, 1294 features, 1252 JavaScript language extensions, 1252 managing browser history, 1284–1288 OOP in JavaScript, 1289–1298
base types, 1294–1295 closures, 1290–1291 inheritance, 1296–1297 interfaces, 1297–1298 namespaces, 1295–1296 prototypes, 1292
pageLoad function, 1269, 1299 PageRequestManager class, 1299 partial page refreshes, 1252 prebuilt controls, 1252 registering classes with, 1293–1294 remote method calls, 1252 script libraries, 1252–1253 script resources, 1253 ScriptManager control, 1253, 1272 ScriptManagerProxy control, 1253 server callbacks, 1254–1272
application services, 1264–1272 placing web method in page, 1263–1264
■ INDEX
1521
server controls, 1272–1288 managing browser history, 1284–1288 partial rendering, 1273–1280 time consuming updates, 1281–1284 timed refreshes, 1280–1281
server-side, 1251, 1253 Timer control, 1280–1281 UpdatePanel control, 1252, 1273–1280
conditional updates, 1276–1277 handling errors, 1275–1276 interrupted updates, 1277–1278 optimizing, 1279–1280 triggers, 1278–1279
UpdateProgress control, 1281–1284 web methods
creating, 1257–1260 placing web method in page, 1263–1264
Web Parts vs. ASP.NET AJAX, 1317 web services, 1254–1263
calling, 1260–1263 web-page framework, 1298–1303
Application class, 1298–1299 client-side AJAX control, 1300–1303 PageRequestManager class, 1299
ASP.NET AJAX controls, 124, 1309–1313 Accordion, 1312 AlwaysVisibleControlExtender, 1309 AnimationExtender, 1309 AsyncFileUpload, 1312 AutoCompleteExtender, 1305–1309 CalendarExtender, 1310 CascadingDropDown, 1310 CollapsiblePanelExtender, 1310 ColorPickerExtender, 1310 ComboBox, 1312 ConfirmButtonExtender, 1310 control extenders, 1303–1309, 1312, 1313 controls, 1312–1313 DragPanelExtender, 1310 DropDownExtender, 1310 DropShadowExtender, 1310 DynamicPopulateExtender, 1310 Editor, 1313 FilteredTextBoxExtender, 1310 HoverMenuExtender, 1310 installing, 1304–1305 ListSearchExtender, 1310 MaskedEditExtender, 1311 ModalPopupExtender, 1311 MultiHandleSliderExtender, 1311 MutuallyExclusiveCheckBoxExtender, 1311 NoBot, 1313 NumericUpDownExtender, 1311
PagingBulletedListExtender, 1311 PasswordStrength extender, 1311 PopupControlExtender, 1311 Rating, 1313 ReorderList, 1313 ResizableControlExtender, 1311 RoundedCornersExtender, 1311 Seadragon, 1313 SliderExtender, 1311 SlideShowExtender, 1312 TabContainer, 1313 TextBoxWatermarkExtender, 1312 ToggleButtonExtender, 1312 UpdatePanelAnimationExtender, 1312 ValidatorCalloutExtender, 1312
ASP.NET applications, 179–183 application directory structure, 182–183 application domain, 179–180 application lifetime, 181 application updates, 181 asmx files, 180 aspx files, 180 Bin directory, 182 code-behind files, 180 configuration file, 180 extending HTTP pipeline, 217–230 global.asax application file, 180, 183–188 HTTP handlers, 217–219
configuration-free handlers, 221–222 configuring, 220–221 creating, 219–220, 222–224 creating for non-HTML content, 224–227
HTTP modules, 227–228 creating, 229–231
master pages, 180 .NET components, 210–217
App_Code directory, 213–214 Bin directory, 214–217 creating components, 211–212
shadow copy technique, 182 web forms, 180 web services, 180 web.config file, 180
ASP.NET configuration, 11–12, 188–210 appSettings element, 197–198 command-line encryption, 210 configuration files, 188 connectionStrings element, 198–199 encrypting configuration sections, 208–210 extending file structure, 204–208 inheritance, 193–194 location element, 194–195 machine.config file, 189–191
■ INDEX
1522
machineKey element, 189–191 programmatic encryption, 209–210 reading and writing configuration sections
programmatically, 199–202 section class
creating, 204–206 registering, 206–208
system.web element, 195–196 system.webServer element, 196 web.config file, 191–195 Website Administration Tool, 202–204
ASP.NET Crystal Reports Web Site template, 26 ASP.NET Dynamic Data see Dynamic Data ASP.NET Empty Web Site template, 25, 28 ASP.NET event model, 75, 93 ASP.NET forms authentication, 839 ASP.NET MVC, 18, 26 ASP.NET pages see web forms ASP.NET project
Toolbox tabs for, 37 ASP.NET Reports Web Site template, 26 ASP.NET request processing framework
creating custom HTTP module, 229 HTTP handlers, 217–219
ASP.NET roles, IIS 7.x, 991–994 ASP.NET Server Control project type, 1109 ASP.NET Server Control template, 1118 ASP.NET server controls
XHTML compliance, 82 ASP.NET services
database scripts for, 890–892 ASP.NET validator controls
avoiding SQL injection attacks, 296 ASP.NET WAT see WAT ASP.NET WCF Service template, 26 ASP.NET Web Application
creating web projects, 60 transactions, 303–308
ASP.NET web forms see web forms ASP.NET Web Parts Framework see Web Parts
Framework ASP.NET Web Site template, 25, 89 ASP.NET website, creating, 89 aspnet_Applications table, 999 aspnet_Applications_CreateApplications
procedure, 1001 aspnet_CheckSchemaVersion procedure, 1001 aspnet_compiler.exe tool, 829 aspnet_Membership table, 896, 897 aspnet_Profile table, 999, 1002, 1007 aspnet_Profile_Xyz procedures, 1001
DeleteInactiveProfiles, 1001, 1016 aspnet_regiis utility, 210
aspnet_regsql.exe tool, 261–262 adding web parts to pages, 1326, 1327 command-line switches, 891, 889 creating database, 887, 888 creating profile tables, 999, 1000 database scripts for services, 890, 891 recommendation of, 891 role-based authorization, 975, 977 ssxyz parameters, 262
aspnet_SchemaVersions table, 1000 aspnet_Users table, 896, 897, 1000 aspnet_Users_Xyz procedures, 1001 aspnet_wp.exe account, 799 aspnetdb database
creating profile tables, 999, 1000 using membership API, 885
aspnetdb.mdf database, 999 creating web part pages, 1320
aspx files, 36 ASP.NET applications, 180 building Ajax-style page, 1232 code-behind model, 53 connecting control tags to page variables, 56 control event handlers, 96 creating JavaScript code, 1190 creating MVC application, 1378 creating web part page design, 1320 declarative nature of data binding, 351 inline code model, 53 naming syntax for source code file, 56 Page directive, 55 PageFlow example, 94 programmatically creating server controls, 131 Silverlight entry page, 1465
aspx.designer.vb files, 60 assemblies, 4
core assemblies for ASP.NET pages, 43 creating for custom server controls, 1109 references, 42–45, 61
assemblies element, web.config, 195 AssemblyInfo.vb file, 1470 AssociatedControlID property, 146 AssociatedUpdatePanelID property, 1283 asymmetric encryption, 846 asymmetric encryption algorithms, 1038,
1050–1053 private/public keys, 1038
asymmetric key pair, 845 AsymmetricAlgorithm class, 1035
GenerateKey method, 1051, 1052 Async attribute, Page directive, 513 Async suffix (to method name)
calling web services, Silverlight, 1510
■ INDEX
1523
AsyncFileUpload control, AJAX, 1312 asynchronous callbacks
managing browser history, 1284–1288 ScriptManager restoring page state, 1287 UpdatePanel control, 1273, 1274, 1275 UpdateProgress control, 1282, 1283
asynchronous handlers, 226, 227 asynchronous loading
Add Reference dialog box, 44 asynchronous pages, 512–525
Ajax, 1229 caching, 521–523 creating, 513–515 downloading images, JavaScript, 1203–1208 handling errors, 518–520 life cycle of, 514 multiple tasks and timeouts, 523–525 querying data in, 515–517
asynchronous postbacks init event, Application, 1299
asynchronous postbacks, UpdatePanel interrupted updates, 1277 Timer control triggering, 1280, 1281 triggers, 1278
AsyncPostBackTrigger, UpdatePanel, 1278 AsyncTimeout property, Page, 524 atomic transactions, 302 Attach to Process dialog box
debugging using WAT, 1103 AttachDBFilename property, 280 attached properties
Canvas layout container, Silverlight, 1482, 1483
attacks brute-force attack, 1037, 1047 POST injection attack, 298, 1242 replay attack, 857, 939 SQL injection attack, 294–297, 341 script injection attack, 1210–1215
Attribute method, XElement, 645 AttributeCount property, XmlTextReader, 633 attributes
FileAttributes enum, 534 GetAttributes method, File, 529 identifying data classes with, 396 LINQ to XML model, 642 NonSerialized attribute, 559 Serializable attribute, 558 SetAttributes method, File, 529 setting, transforming web.config, 807–808 well-formed XML, 624 working with, file system, 534–536
XAttribute class, 645 XHTML compliance, 82
Attributes collection setting attributes, 130
Attributes method, XElement, 645 Attributes property
DirectoryInfo class, 531, 534, 535 FileInfo class, 531, 534, 535 HtmlControl, 127
auditing, profiles, 998 Authenticate event
FormsAuthenticationModule, 858 Login control, 899, 908, 909, 910
Authenticate method, FormsAuthentication, 867, 868
Authenticated property, 909 AuthenticateEventArgs class, 909 AuthenticateRequest event, 185, 985, 986
configuring ASP.NET, 946 creating custom HTTP module, 229
authentication, 841 adding web parts to pages, 1325 adding, MVC application, 1389–1390 authorization rules, 967 Basic authentication, 938–939
using with membership API, 926 certificate-based authentication, 938 conference badge, 841 configuration, IIS, 944 cookie authentication, 857–858 credentials, 841, 843, 844 delegation, 958–959 Digest authentication, 938, 939 forms authentication, 853–879
configuring, membership API, 884, 885–886
controlling authentication code, 855 FormsAuthentication class, 858 FormsAuthenticationEventArgs class, 858 FormsAuthenticationModule class, 858, 859 FormsAuthenticationTicket class, 859 FormsIdentity class, 859 HttpModule class, 858 impersonation, 957–962 Integrated Windows authentication, 938,
940–944 Kerberos authentication, 940, 941–944 levels of security, 840 native authentication module, 947 NTLM authentication, 940–941 profiles, 995, 997 protocols, 940
■ INDEX
1524
requesting web page requiring, 843, 844 SID, 841 tokens, 841 User object, 114 users, membership API, 884, 897 Windows authentication, 935–957
authentication cookies forms authentication, 853 protection attribute, 861 secure coding, 839 slidingExpiration attribute, forms tag, 861 timeout attribute, forms tag, 861
authentication section, web.config, 195, 859, 860
authentication service, AJAX, 1265–1267 authentication tickets, Kerberos, 942 AuthenticationService class, 1266 authenticationService element, 1265 authorization, 841–842, 965–994
ASP.NET 2.0, 13 ASP.NET roles in IIS 7.x, 991–993 checks in code, 972–975 file authorization, 972 IsInRole method, 972–973 levels of security, 840 PrincipalPermission class, 973–975 requesting web page requiring, 844 role-based, 842, 975–988
accessing roles programmatically, 984–986
using LoginView with roles, 983 roles in IIS 7.x, 988–994 URL authorization, 965–972 web parts, 1373–1374
authorization element, web.config, 195 anonymous access to stylesheets used by
login page, 902 authorization and roles in IIS 7.x, 988, 989 authorization rules, 966 authorization with ASP.NET roles in IIS 7.x,
992 controlling directory access, URL
authorization, 969 denying access to anonymous users, 863,
950, 951 personalization, 1374 role-based authorization, 980
authorization rules configuring in IIS 7.x, 989 denying access to anonymous users, 950 site maps, 772 using profile properties, 1003 wildcards, 966
authorization rules, URL, 966–972 directory access, 969–970 file access, 970 role access, 970–972 user access, 967–969
AuthorizationStoreRoleProvider class, 980 Authorize filter, MVC, 1389 AuthorizeRequest event, 185 AuthorizeWebPart event, 1373 Auto Format option, Dynamic Data, 1423 AutoCompleteExtender control, 1305–1309
MinimumPrefixLength property, 1307 TargetControlID property, 1307
AutoDetect value HttpCookieMode enum, 264 web.config file, 870
AutoEventWireup property, 95, 1172 AutoGenerate value, machineKey, 189 AutoGenerateColumns property, 366, 402, 403,
1014 AutoGenerateDataBindings property, 672 AutoGenerateDeleteButton property, 383, 453 AutoGenerateEditButton property, 379, 437,
453 AutoGenerateInsertButton property, 384, 453 AutoGenerateRows property, 391, 453 AutoID value, ClientIDMode, 88, 89 automatic data binding, web forms, 93 automatic paging, GridView, 423–424 automatic postbacks, 76–77, 149 automatic properties
building data access component, 320 automaticSaveEnabled attribute, profile
element, 1010 AutoPostBack property
change events, 93, 1192 handling web control events, 147 ListControl, 151 web control, 76, 77
AutoReverse property Animation class, Silverlight, 1498
Autos window, Visual Studio, 67–68 autoUpgrade parameter, Silverlight, 1468 AvailableFreeSpace property, DriveInfo, 534 Average method, LINQ, 574
■B b tag, 127 Back button, browser history, 1284, 1286 back reference, 1141 BackColor property, WebControl, 138 background parameter, Silverlight, 1467
■ INDEX
1525
BackgroundSounds property, HttpBrowserCapabilities, 1124
backspace metacharacter matching, 164
BackupOperator role, WindowsBuiltInRole enum, 953
base tag, 1115 base types, JavaScript, 1294–1295 BaseValidator class, 160–162
properties, 161, 162 Validate method, 161
Basic authentication, 938–939 secure coding, 839 using with membership API, 926 Windows authentication, 938
BasicAuthenticationModule module, 946 Begin method, Storyboard, 1497 BeginExecuteReader method, 517, 519, 520, 523 BeginForm method, MVC, 1396, 1400 BeginInvoke method, asynchronous pages, 515 BeginPageLoad function, 1200 BeginRead method, 515 BeginReader method, 515 BeginRequest event, 110, 185
PageRequestManager, 1277, 1299 BeginRequestEventArgs class, 1299 BeginTask method, 516 BeginTime property, Silverlight, 1498 BeginTransaction method, 306, 307 BehaviorEditorPart control, 1350 behaviors, 1303
implementing web parts through user controls, 1339
Beta property, HttpBrowserCapabilities, 1124 BETWEEN operator, DataView, 345 Bezier curves
AddBezier method, 1156 DrawBezier method, 1153
bin directory, 182 adding reference to custom controls, 1113 custom controls in Toolbox, 1114 .NET components, 210 project-based development, 59 using component through, 214–217 using custom server controls, 1112
binary data displaying, GridView, 464–465 reading, GridView, 465–466
binary files, streams, 549–550 Binary mode, serialization in, 1007 Binary serialization option, web.config, 1006
BinaryFormatter class, 488, 1009 converting serializable object into stream of
bytes, 559, 560, 561 BinaryReader class, 550 BinaryWrite method, 109, 464, 465, 466 BinaryWriter class, 549
Seek method, 550 Bind method
editing with GridView template, 438, 440 binding see data binding Bindings section, Add Web Site dialog, 820 Bitmap class, 1150, 1163, 1165 bitmaps
drawing with GDI+, 1149, 1150 bitwise arithmetic, 535, 536 body element, CSS rules, 706 Bold property, FontInfo, 143 bookmarking
storing state in URL, 1288 Boolean type, AJAX, 1294 Boolean.ascx template, Dynamic Data, 1431 Border class, Silverlight elements, 1473 BorderColor property, WebControl, 138 borders, GridView styles, 409 BorderStyle property, WebControl, 138 BorderWidth property
Series class, 1176 WebControl, 138
BoundField column, GridView, 402, 403, 404 displaying data, EntityDataSource, 610
BoundField tag defining fields, DetailsView, 453
breadcrumb navigation, 755–757 break mode, Visual Studio, 64, 65, 66 breakpoints, Visual Studio, 64, 68 Breakpoints window, Visual Studio, 68 Browse tab, Add Reference dialog, 216 BrowseDisplayMode, WebPartManager, 1327 browser detection, 17 browser element
browser type detection, 1123 browser history
adding history points, 1285–1286 managing, AJAX, 1284–1288 restoring page state, 1287 storing state in URL, 1287–1288
browser plug-in Web Development Helper tool, 69, 70
Browser property, HttpRequest, 106, 1123 browser support, 11 browsers
adaptive rendering, 1126 App_Browsers directory, 183
■ INDEX
1526
custom caching, 479, 480 custom server controls, 1121–1126
browser type detection, 1122–1123 HtmlTextWriter class, 1121–1122
detecting current configuration, 1123 HttpBrowserCapabilities class, 1123–1125 limitations of query string, 246 losing session state, 257 overriding browser type detection, 1125 working with range of, forms
authentication, 855 Brush object
FillXyz methods, Graphics, 1154, 1160 Brushes class, 1160 brushes, GDI+, 1160–1162
HatchBrush class, 1160 LinearGradientBrush class, 1160 SolidBrush class, 1160 TextureBrush class, 1160
brute-force attacks, 1037, 1047 BufferOutput property, HttpResponse, 108 BuildSiteMap method, 766, 771 BulletedList control, 151, 155–157
repeated-value binding, 359 BulletImageUrl property, 156 BulletStyle property, 156 Button class, Silverlight elements, 1472 Button control, 95, 139 button controls
IButtonControl interface, 741 OnClientClick property, 1193
button tag, HtmlButton, 128 Button.Click event
see also click events connecting events to event handlers, 58 creating simple event handler for, 41 disabling request validation, 1213 PageFlow example, 95, 96
ButtonField column, GridView, 418, 402 ButtonField tag
defining fields, DetailsView, 453 buttons
CausesValidation property, 159 DefaultButton property, 146 IButtonControl interface, 146 rollover buttons, JavaScript, 1221–1225
ButtonType property, CommandField selecting rows, GridView, 414
By keyword, Group clause LINQ expressions, 571
By property Animation class, Silverlight, 1498
bytes ReadAllBytes method, 529 WriteAllBytes method, 529
■C -C switch, aspnet_regsql.exe, 889 Cache collection
adding items to cache, 491–494 data caching, 491 Insert method, 492
cache configuration, 485 cache dependencies, 499–507
aggregate dependencies, 501–502 cache notifications, 505–506 creating cache dependency, 507 custom cache dependencies, 508–512 enabling notifications, 506 file and cache item dependencies, 500–501 item removed callback, 502–504 SQL cache notifications, 504–505 using message queues, 509–512
cache element, web.config, 485 cache notifications, 505–506 Cache object, 105, 106
data caching, 491 Insert method, 509 Remove method, 503
cache priorities, data caching, 495–496 cache profiles, 484–485 Cache property, 108, 481 cache provider, 486–490 cache scavenging, 495 CacheDependency class, 500–501
aggregate dependencies, 501 custom cache dependencies, 508, 509 DependencyDispose method, 509 HasChanged property, 508 NotifyDependencyChanged method, 508,
509 UtcLastModified property, 508
CacheDuration property, 373, 496 CacheExpirationPolicy property, 373, 496 CacheItem class, 488 CacheItemPriority enumeration, 495, 496 CacheItemRemovedReason enumeration, 504 CacheKeyDependency property, 496 CacheProfile attribute, OutputCache, 485 cacheRolesInCookie property, 978 CacheXyz properties, XmlDataSource, 676 caching, 475–512
adding, site maps, 770–772 custom caching, 479–481
■ INDEX
1527
data caching, 476, 491–499 defining settings in web.config, 484 disk-based caching, 486 durable caching, 487 fragment caching, 476, 482 HttpCachePolicy class, 481 memory-based caching, 486 output caching, 476–490 partial caching, 701–704 performance improvement, 475 post-cache substitution, 482–484 profiles, 998 query string, 478 query string parameters, 479 ResolveRequestCache event, 185 sharing cached controls, 704 state management options compared, 235,
236 UpdateRequestCache event, 185 using with asynchronous tasks, 521–523 value of, 475 with data source controls, 496–499
caching element, web.config cache configuration, 485 using custom cache provider, 490
calculated columns data binding with DataReader, 364 DataView class, 348–350
Calendar autoformatting, 30 Calendar class, Silverlight, 1472, 1474 Calendar control, 173, 175–177
DayRender event, 176 events, 175 FirstDayOfWeek property, 176 properties, 175, 176 SelectedDates property, 176 SelectionChanged event, 175 SelectionMode property, 176 smart tag for, 30 styles, 176 triggering postbacks, 1134
CalendarExtender control, AJAX, 1310 callback method
item removed callback, 502 callbacks
asynchronous, UpdatePanel control, 1273 comparing postbacks and, 1244 item removed callback, cache
dependencies, 502–504 server callbacks, AJAX, 1254–1272 sorting and paging, GridView, 429 stages of, 1238 using Ajax with client callbacks, 1236–1249
callBaseMethod method, JavaScript, 1297 CallServerForUpdate function, 1234, 1235 cancel button, UpdateProgress control,
1283–1284 Cancel command
editing FormView, 456 Cancel link
updating records, SqlDataSource, 379 Cancel property
InitializeRequestEventArgs, 1299 LoginCancelEventArgs, 914
CancelButtonClick event, Wizard, 746 CancelButtonStyle property, Wizard, 748 CancelDestinationPageUrl property, Wizard,
746 canonicalization error, 539 Canvas class, Silverlight, 1473, 1481 Canvas layout container, Silverlight, 1482–1487
animation example, 1500 attached properties, 1482, 1483 dragging circles, 1484–1487 layering elements, 1483 positioning elements, 1482 SetZIndex method, 1483 ZIndex property, 1483
Caption property, GridView, 406 CaptionAlign property, GridView, 406 carriage return
metacharacter matching, 164 CAs (certificate authorities), 845, 846
cryptography, 1032 Online Certification Authority wizard, 848 Trusted Root Certification Authorities, 846,
1034 VeriSign, 1034
cascading style sheets see CSS CascadingDropDown extender, 1310 CaseSensitive property, DataTable, 344 CatalogDisplayMode field, WebPartManager,
1327 CatalogIconImageUrl property, 1332, 1335 CatalogZone control
adding web parts to pages, 1325, 1332 creating web part pages, 1320, 1322 customizing web part pages, 1327, 1329 uploading web parts dynamically, 1369,
1372 CausesValidation property, 159, 169, 170, 751 cell spanning, GridView, 458 CellPadding property, 153, 406 Cells collection
programmatically creating server controls, 132
■ INDEX
1528
CellSpacing property, 153, 406 certificate authorities see CAs certificate stores, 1034 certificate-based authentication, 938 certificates snap-in, Windows, 1035 certificates, SSL, 845, 847, 848 challenge response, NTLM authentication, 940 change events
handling events, Silverlight, 1479 HTML server controls, 136 postbacks and, 1131–1134 ServerChange event, 133, 134–136
changed-value concurrency, 327, 328 ChangeExtension method, Path, 540 ChangeMode method, DetailsView, 453, 454 ChangePassword control, 917–918
security controls, membership API, 899 ChangePassword method
Membership class, 931 validating users on login, 1089, 1090
XmlMembershipProvider, 1091, 1093 ChangePasswordTemplate property, 917, 918 chart control, 1172–1187
ASP.NET 4, 17 background, 1174 border, 1174 color, 1174 creating charts, 1172–1178 data, 1175 DataSource property, 1183 populating chart with data, 1179–1187 Series collection, 1175, 1180 titles, 1174
charts 3D charts, 1178 binding to database table, 1179–1181 binding to LINQ, 1186–1187 binding to object datasource, 1181–1183 binding to XML file, 1184–1185 creating, 1172–1178 populating with data, 1179–1187
ChartType property, Series, 1175, 1180 CheckBox class, 139, 158, 1472 checkbox type, input tag
HtmlInputCheckBox class, 129 CheckBoxField column type, GridView, 402 CheckBoxFor method, MVC, 1395, 1396 CheckBoxList control, 151, 152, 710
repeated-value binding, 359 CheckBoxStyle property, Login, 902 Checked property, TreeNode, 782 CheckedChanged event, 147 child nodes, 651
child records parent/child view in single table, GridView,
458–460 ChildItems collection, MenuItem, 787 childNodes collection, document, 1197 ChildNodes property
SiteMapNode, 762, 769 XmlDocument, 636
ChildNodesPadding property TreeNodeStyle, 782
Children property, layout containers dragging circles on Silverlight Canvas, 1484
ChildrenAsTriggers property optimizing UpdatePanel, 1280
Choose Location dialog box, 26 ChromeState property, WebPart, 1332, 1350 ChromeStyle property, WebPart, 1350 ChromeType property, WebPart, 1332 chunking
view state chunking, 81 CircleHotSpot class, 1144 circles
dragging circles on Silverlight Canvas, 1484–1487
class attribute applying stylesheet rules, 708 XAML code-behind, 1477
class libraries .NET framework, 3, 4 project, Visual Studio, 210 Silverlight, 1480–1481
Class View window, Visual Studio, 35 classes
abstract encryption classes, 1039 ADO.NET, 277–278 animation classes, 1495 cryptography, 1035–1041 custom profile providers, 1017–1019 data model classes, LINQ to Entities,
582–585 data utility class, 321–326 entity classes, LINQ to Entities, 584–585 exception classes, 282, 883 forms authentication, 858–859 partial classes, 55, 584 transform classes, 1503–1504 web control, 138–139
classes, JavaScript inheritance, 1296–1297 interfaces, 1297–1298 prototypes, 1292 registering with ASP.NET AJAX, 1293–1294
■ INDEX
1529
classes, list of see also controls, list of ActiveDirectoryMembershipProvider, 883 ActiveDirectoryMembershipUser, 883 Application, 1298–1299 AsymmetricAlgorithm, 1035 AuthorizationStoreRoleProvider, 980 BaseValidator, 160–162 BinaryWriter, 549 Bitmap, 1150 Brushes, 1160 ColorAnimation, 1494 Command, 285–286 CompositeControl, 1136 Connection, 278–284 Control, 1109 ControlAdapter, 1126 CreateUserWizardStep, 919 CreateWizardStep, 919 CryptoStream, 1039, 1040–1041 DataAdapter, 334–342 DataColumn, 333 DataReader, 286–287 DataRow, 333 DataRowExtensions, 578 DataSet, 332–334 DataTable, 333 DataTableExtensions, 578 DataView, 342–350 DbProviderFactories, 311 DeflateStream, 557 Dictionary, 239 Directory, 527, 528–530 DirectoryInfo, 527, 530–533 DoubleAnimation, 1494 DriveInfo, 527, 533–534 DynamicDataRoute, 1433 Encoding, 1047 EncryptedQueryString, 1060 Extensions, 653 FactoredProfileProvider, 1020–1029 File, 527, 528–530 FileInfo, 527, 530–533 FileStream, 546 FileSystemInfo, 530 FormsAuthentication, 858 FormsAuthenticationEventArgs, 858 FormsAuthenticationModule, 858, 859 FormsAuthenticationTicket, 859 FormsIdentity, 859 Graphics, 1149, 1153–1156 GraphicsPath, 1149, 1156–1157 GZipStream, 557
HashAlgorithm, 1036 HatchBrush, 1160 Html32TextWriter, 1121, 1122 HtmlAnchor, 128 HtmlButton, 128 HtmlContainerControl, 127 HtmlControl, 127 HtmlForm, 128 HtmlGenericControl, 129 HtmlHead, 130 HtmlImage, 128 HtmlInputButton, 128 HtmlInputCheckBox, 129 HtmlInputControl, 128 HtmlInputFile, 129 HtmlInputHidden, 129 HtmlInputImage, 129 HtmlInputPassword, 129 HtmlInputRadioButton, 129 HtmlInputReset, 129 HtmlInputSubmit, 129 HtmlInputText, 129 HtmlMeta, 130 HtmlSelect, 129 HtmlTable, 129 HtmlTableCell, 129 HtmlTableRow, 129 HtmlTextArea, 129 HtmlTextWriter, 1121–1122 HtmlTitle, 130 HttpBrowserCapabilities, 1123–1125 HttpCachePolicy, 481 HttpModule, 858 IdentityReference, 955–957 LinearGradientBrush, 1160 MatrixTransform, 1504 Membership, 882, 883, 927–932 MembershipProvider, 883 MembershipProviderCollection, 883 MembershipUser, 883, 928 MembershipUserCollection, 883 MenuItem, 786 NTAccount, 955 ObjectContext, 583–584 OracleClientFactory, 311 Page, 105–121 PageRequestManager, 1276, 1299 Pair, 1130 Path, 538–540 Pens, 1157–1159 PrincipalPermission, 973–975 ProfileBase, 1012 ProfileCommon, 1012
■ INDEX
1530
ProfileInfo, 1013 ProfileManager, 1013 ProtectedData, 1043 RandomNumberGenerator, 1035 RoleManagerModule, 980 RolePrincipal, 952, 980 RoleProvider, 980 RoleProviderCollection, 980 Roles, 980 RotateTransform, 1503 ScaleTransform, 1503 SecurityIdentifier, 955 Series, 1175 SiteMap, 762 SiteMapDataSource, 752 SiteMapProvider, 753, 764–772 SkewTransform, 1503 SolidBrush, 1160 SqlClientFactory, 311 SqlMembershipProvider, 883 SqlProfileProvider, 998–1017 SqlRoleProvider, 980 StaticSiteMapProvider, 764 StringBuilder, 288, 289 SymmetricAlgorithm, 1035 SymmetricEncryptionUtility, 1048–1050 TextureBrush, 1160 TransformGroup, 1504 TranslateTransform, 1503 TreeNodeStyle, 782 TreeViewNode, 785 UserControl, 684 VirtualFile, 823 VirtualPathProvider, 822–825 WebConfigurationSettings, 197 WebControl, 137, 1109 WebControlAdapter, 1126 WindowsIdentity, 953–955 WindowsPrincipal, 952–953 WindowsTokenRoleProvider, 980 X509Certificate, 1033 X509Certificate2, 1033 X509CertificateCollection, 1033 X509Store, 1033 XDocument, 635, 642–648 XElement, 645 XhtmlTextWriter, 1121 XmlDocument, 635, 636–639 XmlNode, 636 XmlReaderSettings, 656 XmlRoleProvider, 1095–1101 XmlSiteMapProvider, 752 XmlTextReader, 628
XmlTextWriter, 628 XmlValidatingReader, 656 XNamespace, 646 XNode, 642 XPathNavigator, 635, 639–642
classic ASP backward compatibility with, 268
Classic pipeline mode application pools, IIS, 827 processing requests, 830
ClassName attribute converting page to user control, 686
ClassName property, Application directive, 268 cleanup, ASP.NET web forms, 94 Clear method
DataSet, 334 HttpSessionState, 258 SqlSiteMapProvider, 771
Clear value passwordFormat attribute, credentials, 869
ClearAllPools method, 284 ClearPool method, 284 click events
see also Button.Click event hotspot clicks, 1145–1146 ImageButton control, 149 ImageMap, 150, 1145–1146 ServerClick event, 133, 134–136 web control events, 147
client callbacks, Ajax, 1236–1249 comparing postbacks and callbacks, 1244 creating, 1237–1243 custom controls, 1244–1249 DynamicPanel control, 1245–1248 DynamicPanelRefreshLink control, 1248
client IDs in GridView templates, 443–444
client libraries, AJAX, 1288–1303 Application class, 1298–1299 ASP.NET AJAX architecture, 1289 object-oriented programming in JavaScript,
1289–1298 base types, 1294–1295 registering classes with ASP.NET AJAX,
1293 PageRequestManager class, 1299 web-page framework, 1298–1303
client-side AJAX control, 1300–1303 clientaccesspolicy.xml file, 1512 ClientBin folder, Silverlight, 1463 ClientCertificate property, HttpRequest, 106 ClientID property, Control class, 125 ClientIDMode enumeration, 88
■ INDEX
1531
ClientIDMode property, 88, 89, 90 GridView control, 443
ClientIDRowSuffix property, 89, 90 ASP.NET 4 changes in data controls, 401 GridView control, 443, 444
client-initiated ADO.NET transactions, 303, 306–308
ClientScript property, Page, 1208 ClientScriptManager class
rendering script blocks, 1208, 1209 client-side AJAX control, 1300–1303 client-side ASP.NET AJAX, 1251, 1252–1253 client-side control IDs, 88–90
cross-page posting, 252 web forms changes in ASP.NET 4, 71
client-side data sending to server, 72
client-side events, JavaScript, 1191–1193 client-side libraries, JavaScript, 1288 client-side programming see JavaScript client-side scripts
writing, Ajax, 1240–1242 ClientTarget property, Page, 1125 clientTarget section, web.config, 1125 ClientValidationFunction property, 167 Clone method, DataSet, 334 Close method
DataReader, 287, 289 FileStream, 547
Close verb custom verbs and web parts, 1364
CloseConnection value, CommandBehavior, 290 CloseFigure method, GraphicsPath, 1157 closures, JavaScript, 1290–1291
prototypes compared, 1292 CLR (Common Language Runtime), 8–9
Silverlight, 1460 ClrVersion property, HttpBrowserCapabilities,
1124 CLS (Common Language Specification), 7, 8 CMS (Cryptographic Message Syntax), 1032 code
adding to user controls, 686–697 App_Code directory, 182 authorization checks in, 972–975
code editor, Visual Studio, 41–52 adding assembly references, 42–45 draggable document windows, 52 error underlining, 48 IntelliSense, 47, 49–50 member list, 46–47 navigation tools, 50–51 outlining, 45–46
code model, ASP.NET, 52–58 models for coding web pages, 52
CodeBehind attribute, Visual Studio, 61 code-behind class, Page, 105 code-behind files
ASP.NET, 36, 180 user controls, 683 XAML code-behind, 1477–1478
code-behind model, Visual Studio, 53, 54, 55 connecting code-behind files to pages,
55–56 connecting control tags to page variables,
56–57 connecting events to event handlers, 57–58 converting page to user control, 686 creating web projects, 60
code-behind view, Visual Studio, 41 CodeDOM (Code Document Object Model),
356 CodeExpression class, 356 CodeFile attribute, ASP.NET, 55, 61 code-free scenarios, GridView, 402 CodeMethodInvokeExpression class, 357 coding guidelines, secure, 838–839 Collapse to Definitions option
outlining, Visual Studio, 46 CollapseImageUrl property, TreeView, 782, 785 CollapsiblePanelExtender, AJAX, 1310 collapsing code
outlining, Visual Studio, 45–46 collection data types
web services, AJAX, 1258 collectionKey argument, IsValidRequestString
method, 1214 Color property
Series class, 1176 web controls, 142
color related properties, 138 ColorAnimation class, Silverlight, 1494, 1495,
1500, 1501 ColorAnimationUsingKeyFrames class, 1495 ColorPickerExtender, AJAX, 1310 colors
GridView styles, 409 web controls, 142
Column property, Grid, Silverlight, 1489 column types, GridView, 402 ColumnDefinitions collection, Grid, 1488, 1489 columns
automatic column generation, GridView, 402, 403
calculated columns, DataView, 348–350 DataColumn class, 333
■ INDEX
1532
defining styles, GridView, 410 defining, GridView, 402–406 fine-tuning column order, 403 hiding, 403 regenerating GridView columns, 403
Columns collection DataTable class, 333 GridView, 403
ColumnSpan property, 458, 1493 COM tab, Add Reference dialog, 215 COM+ transactions, 303, 304 Combine method, Path, 539, 540 ComboBox class, Silverlight, 1472 ComboBox control
ASP.NET AJAX control toolkit, 1312 Command and Parameter Editor dialog, 376 Command class, 274, 285–286
CommandText property, 285, 307 CommandType property, 285 Connection property, 285 connection-based objects, 277 ExecuteNonQuery method, 286, 294 ExecuteReader method, 286, 287–288, 465 ExecuteScalar method, 286, 293 provider-agnostic code, 311 Transaction property, 307 using generic names for provider-specific
classes in this book, 274 command column
editing without, GridView, 441–443 command names, MultiView, 741 Command property,
SqlDataSourceSelectingEventArgs, 377 CommandArgument property, buttons, 436 CommandBehavior enumeration, 290, 291 CommandField class
operations on records, DetailsView, 453 ShowEditButton property, 437
CommandField column, GridView, 402 editing with template, 437, 441 selecting rows, 414
command-line encryption, 210 CommandName property
ChangePassword templates, 917 editing with GridView, 441, 442 FormView editing, 455, 456 handling events in GridView, 436, 437 Login templates, 907 PasswordRecovery templates, 915, 916
commands configuring in Properties window, 370 parameterized commands, 297–298
SqlDataSource, 373–378
CommandText property, ADO.NET, 285, 307 CommandType enumeration, 285 CommandType property, ADO.NET, 285, 286 comments
script blocks, JavaScript, 1194 TODO token tag, 39 well-formed XML, 624
Comments property, FileVersionInfo, 538 comments, Task List window, 39 Commit method, Transaction, 306, 307 commit-as-you-go model, wizards, 747 commit-at-the-end model, wizards, 747 Common Language Runtime (CLR), 8–9, 1460 Common Language Specification (CLS), 7 Common namespace, 277 communication contracts, web parts, 1355,
1356 CompanyName property, FileVersionInfo, 538 CompareValidator control, 158, 163 compilation
ASP.NET, 4–6 assembly, 4 creating web projects, 60 JIT compilation, 4 precompilation, 4, 6
compilation element, web.config, 195 compiled languages
ASP.NET, 4–6 compiled queries
LINQ to Entities, 594–595 CompiledQuery class, 595 Completed event, Storyboard, 1499 Completed suffix (to method name)
calling web services, Silverlight, 1510 CompletedSyncResult class, 520, 521, 522,
523 Complex option
querying stored procedures, LINQ to Entities, 588
components, .NET, 210–217 composite controls, 1136–1139 CompositeControl, 1136–1137 Compress value, CompressionMode, 557 Compressed value, FileAttributes, 535 compression
compressing data in streams, 557–558 sessionState element, 263–264 state management changes, 233
CompressionMode enumeration, 557, 558 Computer Management tool, 40, 260 concurrency
database operations, 600–605 detecting conflicts, GridView, 469–474
■ INDEX
1533
disconnected data, 331 handling conflicts, 601–605 isolation level locking behavior, 310 optimistic model, 600 strict checking, SqlDataSource, 380–381 user concurrency, XmlDocument, 636
concurrency strategies, 327–328 Condition option
customizing breakpoints, 68 conditional expressions, LINQ, 570 conditional updates
UpdatePanel control, 1276–1277 conference badge, authentication, 841 confidentiality, 842
encrypting data, 1031 levels of security, 840
configSections element, web.config, 204, 206 configuration
cache configuration, 485 System.Configuration.dll assembly, 43
Configuration class, 201, 202 configuration file, 36
see also web.config file applying master pages through, 731 applying themes through, 718–719 ASP.NET applications, 180
configuration inheritance machine.config file, 193 web.config file, 193–194
configuration sections reading and writing programmatically, 199–
202 configuration, ASP.NET see ASP.NET
configuration ConfigurationManager class, 206 ConfigurationProperty attribute
orderService element, 206 ConfigurationSaveMode enumeration, 202 ConfigurationSection class, 200, 204 Configure Data Source Wizard, 396
displaying data, EntityDataSource, 607 configured impersonation, 957, 959 ConfirmButtonExtender, AJAX, 1310 ConfirmPassword ID
CreateUserWizard template, 920 confirmSubmit function, JavaScript, 1208 ConflictDetection property, SqlDataSource
deleting records, 383 detecting concurrency conflicts, 472 strict concurrency checking, 380, 381
Connect Timeout setting, 279 ConnectDisplayMode property,
WebPartManager, 1327, 1361
ConnectErrorMessage property, WebPart, 1332 Connection class, 274, 278–284
connection pooling, 283–284 connection strings, 278–281 connection-based objects, 277 provider-agnostic code, 311 releasing connections promptly, 282 standardization in ADO.NET, 276 testing connections, 281–283 user instance connections, 280–281 using generic names for provider-specific
classes in this book, 274 Connection Lifetime setting, 284 connection points, web parts
creating consumer web parts, 1359, 1360 dynamically configuring, 1361–1362 multiple connection points, 1362–1363 static connections between web parts, 1360,
1361 connection pooling, 283–284
connectionStrings element, 198 Oracle data providers, 283 settings, 283–284 SQL Server data providers, 283
Connection property, Command class, 285 connection strings, 278–281
binding chart to database table, 1179 configuring, membership API, 884,
892–893 hard-coding, 279 Initial Catalog value, 280 integrated security, 279 OLE DB provider, 279 retrieving, 280 SqlDataSource control, 370 storing, 279 user instance connections, 280, 281
connection-based objects, ADO.NET, 277 Command class, 285–286 Connection class, 278–284 DataAdapter class, 334–342 DataReader class, 286–287
ConnectionConsumer attribute connecting web parts, 1355, 1356 creating consumer web parts, 1359 user controls and web parts, 1367
ConnectionProvider attribute connecting web parts, 1355, 1356 implementing provider web parts, 1356, 1358 multiple connection points, 1362
connections building data access component, 317 CloseConnection value, 290
■ INDEX
1534
opening and closing quickly, 317 releasing connections promptly, 282 testing connections, 281–283
ConnectionString property, 279, 609 connectionStringName property, 979 ConnectionStrings property, 199, 200, 202, 280 connectionStrings section, web.config, 192,
198–199 building data access component, 318 changing settings in, 201 configuring connection strings, 892 connection pooling, 283 expression builders, 355 SqlDataSource control, 370 storing connection strings, 279 testing FactoredProfileProvider, 1028 WebConfigurationManager class, 200
ConnectionStringsExpressionBuilder, 355 ConnectionsZone
dynamically configuring connection points, 1361, 1362
consistent transactions, 302 Constraints property, DynamicDataRoute,
1436, 1437 consumer web parts, connecting, 1355,
1358–1360 ConsumerConnectionPointID parameter, 1363 Container.DataItem property, 430 containers
HtmlContainerControl class, 127 naming containers, 88 pages as control containers, 97–105
Contains method, StringCollection, 1100 Content control, 725 Content folder
creating MVC application, 1378 Dynamic Data projects, 1422
content pages, 722 creating, 724–726 default content, 727
Content View button, IIS Manager, 801 content-based objects, ADO.NET, 277
DataColumn class, 333 DataRow class, 333 DataSet class, 332–334 DataTable class, 333 DataView class, 342–350
ContentPlaceHolder control creating content pages, 725–726 default content, 727 master pages, 722–724
with tables and CSS layout, 727–730 ContentPlaceHolderID property, 725
ContentTemplate partial rendering with UpdatePanel, 1273 using LoginView with roles, 983
ContentType property, HttpResponse, 109 Context property, Page, 1011 Continue command, Visual Studio, 66 ContinueButton ID
CreateUserWizard template, 921 ContinueButtonClick event
CreateUserWizard control, 921 control adapters
adaptive rendering, 1126 placing in separate DLL assembly, 1126
Control class, 1109 creating custom server controls, 1110 creating web control supporting style
properties, 1119 custom controls using GDI+, 1168 hierarchy of server controls, 124, 125 methods, 126 Page property, 354 properties, 125 Render method, 1110, 1111, 1115, 1119 RenderContents method, 1118 RenderControl method, 1119, 1120
control declaration, web controls, 140 Control directive
converting page to user control, 686 user controls, 684
control event handlers page event handlers compared, 96
control extenders, AJAX, 1303–1313 Accordion control, 1312 AlwaysVisibleControlExtender, 1309 AnimationExtender, 1309 AsyncFileUpload control, 1312 AutoCompleteExtender, 1305–1309 CalendarExtender, 1310 CascadingDropDown extender, 1310 CollapsiblePanelExtender, 1310 ColorPickerExtender, 1310 ComboBox control, 1312 ConfirmButtonExtender, 1310 DragPanelExtender, 1310 DropDownExtender, 1310 DropShadowExtender, 1310 DynamicPopulateExtender, 1310 Editor control, 1313 FilteredTextBoxExtender, 1310 HoverMenuExtender, 1310 installing toolkit, 1304–1305 ListSearchExtender, 1310 MaskedEditExtender, 1311
■ INDEX
1535
ModalPopupExtender, 1311 MultiHandleSliderExtender, 1311 MutuallyExclusiveCheckBoxExtender, 1311 NoBot control, 1313 NumericUpDownExtender, 1311 PagingBulletedListExtender, 1311 PasswordStrength extender, 1311 PopupControlExtender, 1311 Rating control, 1313 ReorderList control, 1313 ResizableControlExtender, 1311 RoundedCornersExtender, 1311 Seadragon control, 1313 SliderExtender, 1311 SlideShowExtender, 1312 TabContainer control, 1313 TextBoxWatermarkExtender, 1312 ToggleButtonExtender, 1312 UpdatePanelAnimationExtender, 1312 ValidatorCalloutExtender, 1312
control IDs, client-side, 88–90 control over HTML, MVC, 18 control over URLs, MVC, 18 control properties see server control properties control property, view state, 78 control state, 78, 1129–1131
disabling, 1130 EnableViewState property, 1129 LoadControlState method, 1130, 1131 SaveControlState method, 1130 using, 1130
control tags connecting to page variables, 56–57
Control Tree section assessing view state, 242 trace log, 114
control tree, showing pages as control containers, 97–101
ControlAdapter class, 1126 controller see MVC (Model-View-Controller) ControlParameter tag
data binding, 374 parameterized commands, 375
controlRenderingCompatibilityVersion attribute, 84, 85
controls absolute positioning, 29, 30 ASP.NET AJAX controls, 124
client-side AJAX control, 1300–1303 composite controls, 1136–1139 control state, 1129–1131 custom controls, JavaScript, 1215–1225
custom controls, Silverlight, 1514 custom server controls, 683 data controls, 124 data source controls, 367–369 derived controls, 1139–1142 dynamic control creation, 103–105 Dynamic Data controls, 124 extending web controls, 1136–1142 FindControl method, 126 handling special characters, 113 HasControls method, 126 HTML server controls, 123, 126–136 input validation controls, 157–172 knowing availability of smart tags, 30 list controls, 150–157 login controls, 124 navigation controls, 124 pages as control containers, 97–105
dynamic control creation, 103–105 page header, 101–103 showing control tree, 97–101
parameter types, 375 RenderControl method, 126 rendering methods, 1120 repeated-value binding, 359 repeated-value controls, 352 representing controls in HTML, 72 rich controls, 124, 172–177 rich navigational controls, 737 runat="server" attribute, 10 security controls, membership API, 898–923 server controls
ASP.NET AJAX, 1272–1288 hierarchy of, 124–125
ServerChange event, 134–136 ServerClick event, 134–136 Silverlight, 1459, 1472 special controls for Login template, 907 Toolbox window, Visual Studio, 35, 37 user control files, ASP.NET, 36 user controls, 683, 683–704 user controls and web parts, 1364–1367 validation controls, 124, 157–172 validation process, 159–160 ViewState property, 1127 web controls, 123, 136–150 web parts controls, 124, 1323 web server controls, 11 WebPartZone controls, 1319
Controls collection GenericWebPart class, 1334 HtmlForm class, 100
■ INDEX
1536
Page class, 97–105 dynamic control creation, 103–105 page header, 101–103 showing control tree, 97–101
programmatically creating server controls, 132
UpdatePanel control, 1273 WebPart control, 1334
initializing custom web part, 1343 rendering custom web parts, 1346
Controls property Control class, 125 HtmlHead class, 102 WebPart class, 1332
controls, list of see also classes, list of Accordion, 740 AdRotator, 173, 173–174 Calendar, 173, 175–177 CatalogZone, 1320, 1322 ChangePassword, 899, 917–918 Chart, 1172–1187 CompareValidator, 163 ContentPlaceHolder, 722–724 CreateUserWizard, 899, 918–923 CustomValidator, 167–168 DetailsView, 451, 452–454 EntityDataSource, 607–614 FormView, 451, 454–456 GridView, 402–444 HtmlContainerControl, 127 HtmlControl, 127 HtmlInputControl, 128 ImageButton, 1143 ImageMap, 1143–1149 ListView, 444–451 Login, 855, 898, 899–910 LoginStatus, 898, 910–911 LoginView, 898, 911–912 Menu, 786–793 MultiView, 173, 738–742 ObjectDataSource, 369, 385–396 PasswordRecovery, 898, 912–917 QueryExtender, 615–619 RangeValidator, 162 RegularExpressionValidator, 163–166 RequiredFieldValidator, 162 RoleGroup, 911 ScriptManager, 1253 ScriptManagerProxy, 1253 SiteMapDataSource, 751, 752 SiteMapPath, 755–757 SqlDataSource, 369–385
Substitution, 173 Timer, 1280–1281 TreeView, 776–786 UpdatePanel, 1273–1280 UpdateProgress, 1281–1284 ValidationSummary, 168 View, 173 WebControl, 137 WebPartManager, 1319, 1321–1322 Wizard, 173, 742–751 Xml, 173 XmlDataSource, 665 XmlSiteMapProvider, 751
ControlStyle property GridView, 405 Wizard control, 748
ControlToCompare property, 163 ControlToValidate property, 161 Conversion Wizard, Visual Studio, 62 Convert class
encrypting query string, 1061 FromBase64String method, 1048 ToBase64String method, 1048
ConvertEmptyStringToNull property, 405 ConvertXmlTextToHtmlText method, 1140 cookie authentication, 857–858 cookieless attribute, web.config
forms tag, 861, 870 sessionState element, 264–265
cookieless forms authentication, 870 cookieless state
absolute links, 265 relative links, 264
cookieName attribute, sessionState, 264 cookieName property, roleManager, 978 CookieParameter tag
parameterized commands, 375 cookiePath property, roleManager, 978 cookieProtection property, 978 cookieRequireSSL property, 979 cookies, 254–255
forms authentication, 853, 859 cookieless forms authentication, 870 persistent cookies, 872–873
limitation of HttpBrowserCapabilities, 1125 overcoming statelessness, 78 removing, 255 retrieving, 254 secure coding, 839 setting, 254 state management options compared, 234 tracking session ID, 257
Cookies collection, 254
■ INDEX
1537
Cookies Collection section, trace log, 115 Cookies property
HttpBrowserCapabilities, 1124 HttpRequest, 106 HttpResponse, 108
cookieSlidingExpiration property, roleManager, 979
cookieTimeout property, roleManager, 979 Copy Local property, Silverlight, 1474 Copy method
DataSet class, 334 File class, 529
Copy Web tab, Visual Studio, 817, 818 copying files, deployment by, 800–804
configuring deployment, 803–804 creating website, 801 deploying website, 801–803 preparing IIS, 800
copyright LegalCopyright property, 538
CopyTo method, FileInfo, 532 core assemblies for ASP.NET pages, 43 count function, XPath, 652 Count method, LINQ, 573 @Count parameter, stored procedures, 426 Count property, HttpSessionState, 258 CountEmployees method, 326 Crawler property, HttpBrowserCapabilities,
1124 $create alias, AJAX, 1303 CREATE EVENT NOTIFICATION command,
505 Create method
abstract encryption classes, 1039 creating controller, MVC, 1382–1383 File class, 529 FileInfo class, 531, 532 XmlReader class, 656
Create value, FileMode, 546 CreateAKey method, machineKey, 190 CreateChildControls method
composite controls, 1136, 1137, 1138 creating consumer web parts, 1358 creating custom web part editor, 1351 creating custom web parts, 1339, 1344 initializing custom web part, 1342, 1343 rendering custom web parts, 1346 user controls and web parts, 1364, 1366
CreateDecryptor method, 1039, 1040 CreateDirectory method, 528 CreatedUser event
accessing roles programmatically, 985 CreateUserWizard control, 921, 922, 923
CreateEditorParts method, 1354 CreateEncryptor method, 1039, 1040 CreateMembershipFromInternalUser method,
1094 CreateNavigator method, 639 CreateNew value, FileMode, 546 createPersistentCookie property, roleManager,
979 CreateRole method, 984, 1097 CreateStyleRule method, 102 CreateSubdirectory method, 531 CreateT factory method, 597 CreateText method, 529, 532 CreateUser method, 931, 932
implementing provider classes, 1084, 1087, 1088
using salted password hashes, 1091, 1093 CreateUserError event, 921 CreateUserIconUrl property, 904 CreateUserText property, 904 CreateUserUrl property, 904 CreateUserWizard control, 918–923
CreatedUser event, 921, 922, 923 events, 921 FindControl method, 923 security controls, membership API, 899 templates, 919
CreateUserWizardStep class, 919, 922 CreateWizardStep class, 919 CreateXMLHttpRequest function, 1234 CreateXyz methods, DbProviderFactory, 312,
313 CreatingUser event, 921 CreationTime property, 531 credentials
authentication, 841, 843, 844 creating custom login page, 864 forms authentication, 853, 867, 871 Kerberos authentication, 942 PrincipalPermission attribute, 974
credentials element, web.config, 862 hashing passwords, 869
Credentials section, Publish dialog box, 812 credentials store, web.config, 862, 871 cross-domain web service calls, Silverlight,
1512–1514 cross-page posting, 74, 110, 247–253
getting page-specific information, 249–250 IsCrossPagePostBack property, 251 IsPostBack property, 251 performing in event handler, 250–251 PostBackUrl property, 247 validation, 252–253
■ INDEX
1538
cross-site scripting, 838, 1255 CRUD operations, MVC, 1377 CryptoAPI class, 1031 CryptoAPI functions
classes wrapping, 1036 CryptoAPI library, 1036, 1037 cryptography
encrypting data, 1031 encrypting query string, 1059–1064 encrypting sensitive data, 1041–1058
in database, 1054–1059 managing secrets, 1041–1043
generating strong random numbers, 1034 .NET support for, 1031
cryptography classes, 1035–1041 abstract encryption classes, 1039 asymmetric encryption algorithms, 1038,
1050–1053 CryptoStream class, 1040–1041 ICryptoTransform interface, 1039–1040 symmetric encryption algorithms, 1037–
1038, 1043–1050 SymmetricEncryptionUtility class, 1048–
1050 cryptography namespace, 1032–1035 cryptographySettings section, machine.config,
1047 CryptoStream class, 1039, 1040–1041
FlushFinalBlock method, 1047 Position property, 1041 reading and decrypting data, 1040 Seek method, 1041 using symmetric algorithms, 1047, 1048 writing and encrypting data, 1041
CryptoStreamMode enumeration, 1040 Crystal Reports Web Site template, 26 CSS (cascading style sheets), 705–709
anonymous access to stylesheets used by login page, 901
creating stylesheets, 705–708 fonts, web controls, 144 HTML server controls, 136 master pages with tables and CSS layout,
727–730 rules, 706–708
applying stylesheet rules, 708–709 precedence, 709
selectors, 708 using CSS in themes, 718
CSS Outline window, Visual Studio, 707 CSS overflow property, 147 CSS Properties window, Visual Studio, 709, 710 CSS style attribute, 131
CSS-based layout, 730 CssClass property
applying stylesheet rules, 708 creating CSS stylesheets, 705 GridView styles, 409 Login control, 900, 902 using CSS in themes, 718 WebControl, 138
CssStyle property, 708 Currency type format string, 407 current node
showing portion of site map, 758–759 Current property, HttpContext, 121, 1081, 1508 CurrentExecutionFilePath property, 107, 201 CurrentMode property, DetailsView, 453 CurrentNode property, SiteMap, 762 CurrentNodeStyle property, 757 CurrentNodeTemplate property, 757 CurrentStore property, 1084, 1087, 1095, 1098 CurrentUser flag, 1033, 1034, 1043 CurrentUserControlPath property, 1366 cursor
firehose cursor, 286 Focus method, 144
curves AddClosedCurve method, 1156 AddCurve method, 1156 DrawClosedCurve method, 1153 DrawCurve method, 1153 FillClosedCurve method, 1154
custom cache dependencies, 508–512 using message queues, 509–512
custom controls see also custom server controls client callbacks, 1244–1249 GDI+, 1167–1172 JavaScript, 1215–1225
pop-up windows, 1216–1221 rollover buttons, 1221–1225
Silverlight, 1514 custom cookies
state management options compared, 234 custom data components
profiles compared, 998 custom membership and roles providers
architecture, 1067–1069 creating, 1068, 1069–1105 creating and adding users to stores, 1084–
1088 design, 1069–1070 designing and implementing custom store,
1071–1078 implementing provider classes, 1078–1101
■ INDEX
1539
XmlMembershipProvider, 1078–1095 XmlRoleProvider, 1095–1101
using custom provider classes, 1102–1105 debugging using WAT, 1103–1104 using custom providers with IIS 7.x,
1104–1105 using salted password hashes, 1091–1093 validating users on login, 1088–1091
Custom mode, sessionState element, 263 custom objects, using, 690–692 custom profile providers, 1017–1029
FactoredProfileProvider class, 1020–1029 initialization, 1021–1022 reading profile information, 1023–1024 updating profile information, 1025
custom server controls, 683, 1109–1120 see also custom controls; server controls adaptive rendering, 1126 adding reference to, 1113 browser type detection, 1122–1123
overriding, 1125 browser variations, 1121–1126 composite controls, 1136–1139 control state, 1129–1131 creating, 1110–1112 creating assembly for, 1109 creating label for specific data, 1139 creating web control supporting style
properties, 1115–1119 deploying compiled assembly, 1114 derived controls, 1139–1142 design-time support, 1109, 1114, 1115 detecting current browser configuration,
1123 extending web controls, 1136–1142 generating HTML for, 1109, 1110 HtmlTextWriter class, 1110, 1121–1122 HttpBrowserCapabilities class, 1123–1125 postbacks and change events, 1131–1134 rendering pages, 1169–1172 rendering process, 1119–1121 Toolbox, 1113–1115 triggering postbacks, 1134–1136 using, 1112–1113 view state, 1127–1129 ViewState property, 1127 Visual Studio, 1118
custom store designing and implementing, 1071–1078
custom verbs, web parts, 1363–1364 CustomError method, MVC, 1412 customErrors element, web.config, 196 CustomLineCap object, 1158
CustomPages folder, Dynamic Data, 1422, 1423, 1439
customProvider attribute, web.config, 263 CustomTemplates folder, Dynamic Data, 1439 CustomValidator control, 158, 167–168
■D -d switch, aspnet_regsql.exe, 889, 999 d namespace prefix, Silverlight, 1475 DashPattern property, Pens, 1158 DashStyle enumeration, 1158 DashStyle property, Pens, 1158 data
App_Data directory, 183 disconnected data, 330–331 Dynamic Data applications, 1415–1421 encrypting data, 1031 sending client-side data to server, 72 System.Data.dll assembly, 43 validating data, MVC, 1403–1408
data access see also ADO.NET building data access component, 317–330
avoiding wide-open queries, 318 concurrency strategies, 327–328 data package, 318–320 data utility class, 321–326 design, 318 error handling, 317 guidelines, 317–318 opening and closing connections, 317 separating code, 318 stateless design, 317 stored procedures, 320 testing database component, 328–330
ObjectDataSource control, 385 SequentialAccess value, 291 without ADO.NET, 273–274
data access class using DataSet in, 341
data access components profiles storing data, 997
data access logic disadvantages of SqlDataSource, 384
data binding, 331, 342, 351–367, 372–373 automatic data binding, 93 binding chart
to database table, 1179–1181 to LINQ, 1186–1187 to object datasource, 1181–1183 to XML file, 1184–1185
binding DataSet to control, 337
■ INDEX
1540
binding to method, GridView, 434–435 binding to DataReader, 363–365, 372 binding to DataView, 367, 372 binding to site map, 754–755 calling web services, AJAX, 1261 configuring bindings for SSL, 849 custom expression builders, 355–358 data source controls, 351, 367–369
adding extra items to data-bound list, 397–400
DataBind method, 126 DataSet class, 332 DataTable class, 578 DataView class, 343 declarative nature of, 351 file-browsing application, 541, 545 filling GridView controls, 343, 344 ObjectDataSource control, 369, 385–396 page life cycle with, 368–369 Page.Load event, 373 Page.OnPreRenderComplete method, 373 Page.PreRender event, 373 repeated-value binding, 352, 359–367 rich data controls, 365–367 Silverlight, 1460 single-value binding, 352, 352–354 SqlDataSource control, 369–385 XmlDataSource control, 665
data binding expressions, 352–354 $ expressions compared, 355 binding to method, GridView, 435 creating JavaScript page processor, 1200 file-browsing application, 545 single-value binding, 352, 353
data binding, XML see XML data binding data bound controls
client IDs in GridView templates, 443 data caching, 476, 491–499
absolute expiration, 492, 493 adding items to cache, 491–494 cache priorities, 495–496 cache scavenging, 495 cache test, 494–495 data source controls, 496–499 dependencies, 491 ObjectDataSource, 499 sliding expiration, 492 SqlDataSource, 497–499 thread-safety, 491
data classes building data access component, 318 identifying with attributes, 396
data components profiles compared, 998
data controls, 124 data definition tasks, 285 data fields, validation
customizing Dynamic Data websites with metadata, 1451–1455
extensibility methods, 1454–1456 data manipulation tasks, 285 data model classes, 582–585
entity classes, 584–585 entity relationships, 586–587 ObjectContext class, 583–584
data model diagram, Visual Studio, 587 data model, generating
LINQ to Entities, 582 Data namespace, 277 data package
building data access component, 318–320 data properties, list controls, 359 Data property, XmlDataSource, 676, 779 data providers, 274–276
see also providers ADO.NET provider model, 275 ODBC provider, 275, 276 ODP.NET (Oracle), 275 OLE DB provider, 275, 276 provider-agnostic code, 311–315 SQL Server provider, 275, 276 SqlDataSource control, 369
data ranges, XML schemas, 626 data source caching, 476 data source controls, 351, 367–369
AccessDataSource control, 368 adding extra items to data-bound list, 397–
400 ASP.NET 2.0, 13 CacheDuration property, 496 CacheExpirationPolicy property, 496 CacheKeyDependency property, 496 cache-related properties, 496 caching with, 496–499
ObjectDataSource, 499 SqlDataSource, 497–499
calling web services, AJAX, 1261 configuring parameter binding at design
time, 376 EnableCaching property, 496 events, 389 GridView control, 374 IDataSource interface, 368 ObjectDataSource control, 368, 369,
385–396
■ INDEX
1541
selecting records, 386–388 updating records, 392–396
page life cycle with data binding, 368–369 parameter types, 375 single-value binding, 352 SiteMapDataSource control, 368 SqlCacheDependency property, 496 SqlDataSource control, 368, 369–385
binding controls at design time, 371 deleting records, 383 disadvantages of, 384–385 error handling, 378 inserting records, 384 parameterized commands, 373–378 selecting records, 370–372 updating records, 379–380
XmlDataSource control, 368, 665 data store
consolidating access, MVC, 1390–1393 creating, membership API, 884 profiles, 996–997
Data tab, Visual Studio Toolbox, 368 data template IDs, 401 Data Toolbox tab, 37 data types
adding parameters with implicit data types, 301
animation, Silverlight, 1494 profiles and custom data types, 1008–1012
managing automatic saves, 1010–1012 serialization, 1009–1010
state management options compared, 234, 235
web services, AJAX, 1257 XML schemas, 626
data utility class building data access component, 321–326
DataAdapter class, 274, 334–342 connection-based objects, 277 DeleteCommand property, 334 Fill method, 334, 336 filling DataSet, 334, 335–337 filling multiple tables, 338 FillSchema method, 334 InsertCommand property, 334 interaction with data source, 335 searching for specific rows, 340 SelectCommand property, 334, 336 table relationships, 337–339 Update method, 334 UpdateCommand property, 334 using generic names for provider-specific
classes in this book, 274
database connection strings, web.config, 198 database connections, ADO.NET
connection pooling, 283–284 connection strings, 278–281 testing connections, 281–283 user instance connections, 280–281
database operations, 595–605 concurrency, 600–605 delete operations, 599 insert operations, 595–599 update operations, 599
database server user instance connections, 280
database utility class, 318 databases
binding chart to database table, 1179–1181 configuring connection strings, 892–893 creating, membership API, 886–892 dirty reads, 309 encrypting sensitive data in, 1054–1059 file-based SQL Server store, 892 nonrepeatable reads, 309 null values, 290 phantom rows, 309 publishing, web deploy approach, 810–811 referential integrity, 340 scripts for ASP.NET services, 890–892 SQL injection attacks, 294–297 tables used for profiles, 999–1000 transactions, 302–310
DataBind method binding chart to LINQ, 1187 Control class, 126 GridView, 342 ListControl class, 366 Page class, 344
$ expressions, 355 binding controls at design time, 372 custom expression builders, 358 data binding with DataReader, 365 repeated-value binding, 360 single-value binding, 352, 353, 354
repeated-value binding, 352, 360, 366 view state, 1128 XmlDataSource class, 666
DataBinder class Eval method, 414, 430, 431, 440
DataBindTable method, 1180 DataBindXY method, 1181, 1185 DataBindY method, 1176 DataBound event, GridView, 457, 458 data-bound list
adding items to, 397–400
■ INDEX
1542
DataColumn class, 333 content-based objects, 277 Expression property, 348, 340
DataField property, BoundField, 404, 419 DataFile property, XmlDataSource, 676, 677 DataFormatString property, BoundField, 404,
406, 407 DataGrid class, Silverlight, 1473, 1474 DataItem class, 1182 DataItem property, 412, 430, 791 DataItemIndex class, 1358 DataKeyNames property, GridView
creating master-details form, 415, 416 deleting records, 383 displaying data, EntityDataSource, 610 getting related data, EntityDataSource, 612 retrieving users from membership store,
930 strict concurrency checking, 381
DataMember property, 152, 342 DataObject attribute, 397 DataObjectMethod attribute, 397 DataObjectTypeName property, 393 DataPager control, 450 DataProtectionScope enumeration, 1043 DataReader class, 274, 286–288
binding to, 363–365, 372 Close method, 287, 289 CloseConnection value, 290 connection-based objects, 277 FieldCount property, 287 GetBytes method, 465, 466 GetChar method, 287 GetDateTime method, 287, 289 GetInt32 method, 287 GetString method, 289 GetValue/GetValues methods, 287 handling errors, asynchronous pages, 518 Item property, 289 multiple asynchronous tasks and timeouts,
524 .NET nullable values, 290 NextResult method, 287 processing multiple result sets, 291–292 Read method, 287, 288 retrieving results with, 289 using caching with asynchronous tasks, 522 using generic names for provider-specific
classes in this book, 274 DataReader mode, SqlDataSource, 372
automatic paging, 424 binding to SqlDataSource, 431
DataRelation class calculated columns, 349 content-based objects, 277 creating table relationships, 338 using JOIN query or, 339
DataRow class, 333 accessing records, 338 content-based objects, 277 DataTable records, 333 Field(Of T) method, LINQ, 578 GetChildRows method, 338
DataRowExtensions class, 578 DataSet class, 274, 332–334
accessing records, 338 binding chart to XML file, 1184, 1185 binding DataSet to control, 337 binding to DataView, 367 caching with SqlDataSource, 497 Clear method, 334 Clone method, 334 content-based objects, 277 converting DataSet to XML, 678–679 Copy method, 334 creating typed DataSets, 1340–1341 data caching, 493 DataAdapter filling, 334, 335–337 disconnected data, 330–331 displaying contents of, 336 EnforceConstraints property, 340 GetXml method, 333, 677 GetXmlSchema method, 333, 677 InferXmlSchema method, 678 LINQ to DataSet, 14, 563, 577–580 Merge method, 334 methods, 333 ReadXml method, 334, 677, 678
binding chart to XML file, 1185 ReadXmlSchema method, 334, 678 Relations collection, 338 Relations property, 332 sorting with ObjectDataSource, 419, 420 standardization in ADO.NET, 276 table data contained in, 332 table relationships, 337–339 Tables collection, 333 Tables property, 332 typed DataSets, 580 updates with, 331 using in data access class, 341 web applications and, 331–332 web services, AJAX, 1258 WriteXml method, 333, 677, 678
■ INDEX
1543
WriteXmlSchema method, 333, 678 XML and DataSet, 677–679 XML methods, 677–678 XML serialization, 332
DataSet mode, SqlDataSource, 372, 419 automatic paging, 424 binding to SqlDataSource, 431 caching with SqlDataSource, 498
DataSource property binding chart to object datasource, 1183 data binding, 342, 671 DropDownList control, 439 GridView, 342, 439, 671 list controls, 151, 359, 366 nested grids, XML data binding, 671 repeated-value binding, 352, 366 view state, 1128
DataSourceID property binding controls at design time, 371, 372 displaying data, EntityDataSource, 610 list controls, 359 ListBox, 371 GridView, 372, 610
DataSourceMode property, SqlDataSource, 372, 419, 498
datasources, binding chart to, 1181–1183 DataTable class, 333
accessing records, 338 binding to DataView, 367 CaseSensitive property, 344 DataAdapter filling, 335 DefaultView property, 343, 367 filtered/sorted representation of data in,
342 link to DataView, 419 Load method, 522 reading/writing XML, 678 record represented by, 333 repeated-value binding, 363 searching for specific rows, 340 Select method, 340, 341 sorting with ObjectDataSource, 419 SQL injection attacks, 341 using caching with asynchronous tasks, 522 web services, AJAX, 1258
DataTableExtensions class, 578 AsDataView method, 578, 579
DataTextField property binding controls at design time, 372 data binding with DataReader, 364 data binding with GridView, 366 list controls, 152, 359, 361, 372 repeated-value binding, 361
DataTextFormatString property list controls, 152, 359
DataTypeAttribute class, 1407 DataTypeCheck value, 163 DataValueField property
data binding with GridView, 366 list controls, 152, 359, 361 repeated-value binding, 361
DataView class, 342–350 binding chart to XML file, 1185 calculated columns, 348–350 data binding, 343 filtering, 345–347
with relationships, 347–348 link to DataTable, 419 repeated-value binding, 363, 367, 372 RowFilter property, 342, 345, 498 Sort property, 342, 343, 419 sorting, 343–344
with SqlDataSource, 419 date and time format strings, 408 Date type, JavaScript DatePicker class
Silverlight elements, 1472, 1474 DateTime class, 873 DayRender event, Calendar, 175, 176 DbDataFactories class, 314 DBNull.Value constant, 290
LINQ to DataSet, 580 passing null value to stored procedure, 302
DbProviderFactories class, 311, 312 DbProviderFactory.CreateXyz methods, 312,
313 DbProviders section, machine.config, 312 debug attribute, web.config, 195 debugging
enabling, web.config, 42 JavaScript, 1196–1197 projectless development, 59 testing event-handling logic, 42 Trace object, 114
debugging, Visual Studio, 22, 63–68 break mode, 64, 65, 66 breakpoints, 68 commands available in break mode, 66 single-step debugging, 64–66 tracing, 115 variable tracking windows, 67–68 Visual Studio Debug toolbar, 65 Web Development Helper tool, 68–70
decimals metacharacters for matching types of
characters, 165
■ INDEX
1544
declarative nature of data binding, 351 declarative output caching, 476–478 declarative permissions, changing, 975 Decompress value, CompressionMode, 558 Decrypt method, FileInfo, 536 DecryptData method, 1045, 1046, 1048 decryptionKey attribute, machineKey, 190 Deep Zoom Composer tool, 1313 Deep Zoom feature, Silverlight, 1473 default doctype, Visual Studio, 86 default editor for files, 37 Default Web Site item, IIS Manager, 800 Default.ascx element template, Dynamic Data,
1425 Default.aspx page
creating ASP.NET website, 89 deploying website by copying files, 801 Dynamic Data, 1419, 1423, 1429
Default.aspx.vb file, 801 DefaultButton property, 146 DefaultContainerName property, 609 DefaultDetails route, MVC, 1386 DefaultEvent attribute
triggers, UpdatePanel, 1278 DefaultFocus property, Form, 145 DefaultMode property, DetailsView, 384, 453 defaultProvider attribute, web.config
configuring membership providers, 893 using custom cache provider, 490
defaultProvider property, roleManager, 978 defaultUrl attribute, web.config, 862, 864 defaultValue attribute, web.config, 1003 DefaultView property, DataTable, 343, 367 deferred execution, LINQ, 565 DeflateStream class, 557 delegation, 958–959
caution using, 959 configuration, IIS, 947, 948
denying access to anonymous users, 951 feature delegation, IIS, 948 Kerberos authentication, 942
Delete button operations on records, DetailsView, 453
Delete command concurrency strategies, 327 editing FormView, 456
delete database operations, 599 Delete method
Directory class, 528 DirectoryInfo class, 531 File class, 529 FileInfo class, 531
Delete method, MVC adding authentication, 1389 creating controller, 1384 modifying views, 1396
Delete Tab option, 38 DeleteCommand property
DataAdapter class, 334 SqlDataSource, 370, 379, 383
DeleteCommandType property, SqlDataSource, 370
Deleted event page life cycle with data binding, 369 SqlDataSource control, 378
DeleteEmployee method, 326 DeleteEmployee stored procedures, 320 DeleteInactiveProfiles method, 1013, 1019 DeleteMethod property, ObjectDataSource, 387 DeleteObject method, ObjectContext, 599 DeleteProfile method, 1013 DeleteProfiles method, 1013, 1019 DeleteRole method, 984, 1097, 1098 DeleteUser method, 932 Deleting event
ObjectDataSource control, 394 page life cycle with data binding, 369 SqlDataSource, 377
deleting records, SqlDataSource, 383 Demand method, PrincipalPermission, 973, 974 deny rule
IIS 7.x and forms authentication, 874 URL authorization, 966, 967, 971
dependencies aggregate dependencies, 501–502 cache dependencies, 499–507 custom cache dependencies, 508–512 data caching, 491 file and cache item dependencies, 500–501
DependencyChanged value, 504 DependencyDispose method, 509 deploying website see website deployment deployment, 11–12
ASP.NET 4, 17 project-based development, 60 projectless development, 59 website deployment, 799–819
Depth property, TreeNode, 781 derived controls, 1139–1142 DES (Data Encryption Standard)
machineKey element, 190 DES abstract algorithm class, 1037 DESC attribute
sorting, DataView, 344 descendant node, 651
■ INDEX
1545
Descendants method, XElement, 653, 655 description metatag, 102 Description property
HtmlHead class, 102 IWebPart interface, 1335 SqlMembershipProvider, 894 SqlRoleProvider, 979 WebPart class, 1332
DESCryptoServiceProvider class, 1037 design view, Visual Studio, 28
connecting events to event handlers, 57 DesignDisplayMode, WebPartManager, 1327 DesignerGenerated attribute
web services, AJAX, 1257 design-time support
custom server controls, 1109, 1114, 1115 DestinationPageUrl property, Login, 904 Details action, Dynamic Data
constraining routes, 1436, 1437 route discovery by table, 1439 switching to single-page editing, 1437, 1438 using different templates for tables, 1438
Details method, MVC action results, 1412 adding view data, 1397 configuring routing, 1386 creating controller, 1382 error handling, 1387, 1388
Details MVC view adding view data, 1396 customizing, 1398 modifying views, 1394, 1395, 1396
Details.aspx, Dynamic Data, 1421 route discovery by table, 1439 using entity templates, 1425
Details.aspx, MVC, 1394, 1397 DetailsView control, 365, 451, 452–454
AllowPaging property, 452 AutoGenerateInsertButton property, 384 AutoGenerateRows property, 391 data binding, 373 DefaultMode property, 384 defining fields, 453 displaying data, 607, 610, 611 editing field using lookup tables, 462 editing related data, 612 inserting records, 384, 395 InsertVisible property, 384 ItemUpdated event, 472 operations on records, 453–454 PagingSettings property, 452 PagingStyle property, 452
updating records, 379 validation, 613
DetailsViewMode enumeration, 453 development
creating projectless website, 24 project-based development, 59–60
Device value, FileAttributes, 535 DHTML (Dynamic HTML), 1190 Dictionary class, 239 DictionaryEntry class, 493 DictionaryStructure class, 360 Digest authentication, 938, 939 Direction property
Parameter object, 300 WebPart class, 1332
directories controlling access, 969–970 CreateSubdirectory method, 531 creating virtual directories, 821 file-browsing application, 541 filtering files with wildcards, 536 GetDirectories method, 531 GetDirectoryName method, 540 RootDirectory property, 534 ShowDirectoryContents method, 543
Directory class, 527, 528–530 filtering files with wildcards, 536 methods, 528
directory classes see file system classes Directory property, FileInfo, 532 directory structure, application, 182–183 Directory value, FileAttributes, 535 DirectoryExists method, 825 DirectoryInfo class, 527, 530–533
Attributes property, 531, 535 Create method, 531 CreateSubdirectory method, 531 creating, 532 CreationTime property, 531 Delete method, 531 determining total size information, 533 Exists property, 531 Extension property, 531 file-browsing application, 542 filtering files with wildcards, 536 FullName property, 531 GetDirectories method, 531, 537 GetFiles method, 531, 537, 1166 LastAccessTime property, 531 LastWriteTime property, 531 Name property, 531 Parent property, 531
■ INDEX
1546
passing information to dynamic images, 1166
Root property, 531 working with attributes of file system,
534–536 DirectoryName property, 532 dirty reads, databases, 309, 310 Disabled property, HtmlControl, 127 Disabled value, ViewStateMode, 243 disableExpiration attribute, web.config, 485 disableMemoryCollection attribute, 485 DisappearAfter property, Menu, 790 disassembling code, 7 disassembling tools, 1042 disconnected data, 330–331
concurrency, 331 DataColumn class, 333 DataRow class, 333 DataSet class, 332–334 DataTable class, 333
disk-based caching, 486 Display property, BaseValidator, 161 DisplayCancelButton property, Wizard, 746 DisplayFormat string
customizing Dynamic Data websites with metadata, 1448
DisplayMode property BulletedList, 156 ValidationSummary, 168 WebPartManager, 1327, 1328, 1361
DisplayName attribute, Dynamic Data changing display names, 1443, 1445 validating data fields, 1452
DisplayRememberMe property, Login, 904 DisplaySideBar property, Wizard, 742 DisplayTitle property, WebPart, 1332 Dispose method
asynchronous pages, 517 connections, 282 custom HTTP module, 229 graphics1151 HoverButton, 1301, 1302 IDisposable interface, 1297 ObjectDataSource, 389
Disposed event, 94, 186 distributed transactions, SQL Server, 306 div container
absolute positioning, 30 div element, 127
applying stylesheet rules, 708 Panel control class, 139 Silverlight entry page, 1465, 1466
DLL assembly creating custom HTTP handler, 219 Silverlight compilation process, 1463
dll files bin directory, 182 Windows applications, 179
DllImport attribute, 960 doctype (document type definition)
Visual Studio default, 86 XHTML 1.0 frameset, 84 XHTML 1.0 transitional, 83 XHTML 1.1 strict, 83, 84 XHTML compliance, 83–84
DOCUMENT object, Properties window, 713 document structure, XML schemas, 626 Document window, Visual Studio, 35, 37 document windows, draggable, 52 document.childNodes collection
debugging JavaScript, 1197 document.getElementById method
calling web services, AJAX, 1262 manipulating HTML elements, 1196
DocumentSource property, Xml, 662 DOM (Document Object Model), 1190–1191 domain attribute, web.config, 860, 862 domain authentication, 860 domain property, roleManager, 979 domains, application, 179–180 doPostBack function, JavaScript, 76, 77
immediate response events, 93 onchange attribute, 1192 triggering postbacks, 1134, 1135, 1190
Dotfuscator, 7 DotNetNuke website template, 26 DoubleAnimation class, 1494, 1500, 1501
Duration property, 1495 DoubleAnimationUsingKeyFrames class, 1495 DPAPI (data protection API) provider, 208, 1043 draggable document windows, Visual Studio,
52 DragPanelExtender control, AJAX, 1310 drawing
GDI+, 1150–1151 Graphics class, 1153–1154 model for .NET, 1149–1161 System.Drawing.dll assembly, 43
Drawing namespace, GDI+, 1149 Drawing2D namespace, GDI+, 1149 DrawPath method, 1153, 1156 DrawString method, 1151, 1154
rendering GDI+ custom controls, 1170 DrawXyz methods, 1153, 1154
Pen object, 1154, 1157
■ INDEX
1547
DriveFormat property, 534 DriveInfo class, 527, 533–534 drives
GetDrives property, 534 GetLogicalDrives method, 528
DriveType property, 534 DropDownExtender control, AJAX, 1310 DropDownList control, 151
adding extra items to data-bound list, 397–400
DataSource property, 439 parameterized commands, 374 repeated-value binding, 359 selectable list controls, 152 SelectedIndex property, 439 SelectedValue property, 440
DropDownListFor method, MVC, 1396, 1402 DropShadowExtender control, AJAX, 1310 DSA abstract algorithm class, 1038 DSACryptoServiceProvider class, 1038 DTC (Distributed Transaction Coordinator),
306 durable caching, 487 durable transactions, 303 Duration attribute, OutputCache, 477 Duration property, Silverlight
Animation class, 1498 DoubleAnimation class, 1495
dynamic control creation, 103–105 Dynamic Data, ASP.NET, 18
controls, 124 creating applications, 1415–1421 DynamicData.dll assembly, 43 Entities Web Site template, 26 projects, 1421–1422 routes, 1432–1437
changing URL format, 1435 constraining routes, 1435–1437
Dynamic Data Toolbox tab, 38 Dynamic Data websites
creating, 1415–1418 customizing, 1422–1455 customizing with metadata, 1442–1450
custom field template, 1450 display names, 1443–1445 field formatting, 1448–1449 metadata classes, 1442 validation for data fields, 1451–1455 visibility, 1446–1448
customizing with routes, 1432–1441 single-page editing, 1437–1438 templates for tables, 1438–1441
customizing with templates, 1422–1432 default templates, 1422–1423 entity templates, 1424–1429 field templates, 1429–1432 page templates, 1423–1424
exploring, 1418–1421 dynamic graphics
custom controls that use GDI+, 1167–1172 embedding in web pages, 1162–1172 passing information to images, 1164–1166 using PNG format, 1163
Dynamic HTML (DHTML), 1190 dynamic user interface, 74–75 dynamically loading user controls, 697–701
portal frameworks, 698–701 dynamically setting master page, 733 DynamicControl class, 1427 DynamicData folder, 1421 DynamicDataRoute class, 1433
Action property, 1433 Constraints property, 1436 Model property, 1433 Table property, 1435 ViewName property, 1433
DynamicEntity control, 1425 DynamicHoverStyle property, 790 DynamicMenuItemStyle property, 790 DynamicMenuItemTemplate property, 791 DynamicMenuStyle property, 790 DynamicPanel control
asynchronous updates, 1273 client callbacks, 1245–1248 client page, 1249 Refresh event, 1249
DynamicPanelRefreshLink control asynchronous updates, 1273 client callbacks, 1248 client page, 1249 PanelID property, 1248
DynamicPopulateExtender control, AJAX, 1310 DynamicSelectedStyle property, 790
■E -E switch, aspnet_regsql.exe, 889, 891, 999 eager loading, LINQ to Entities, 592 EcmaScriptVersion property, 1124, 1230 Edit action, Dynamic Data, 1437, 1438, 1439 Edit Application dialog box, 828 Edit button
operations on records, DetailsView, 453 Edit command
editing FormView, 456
■ INDEX
1548
Edit Function Import dialog box, 588 Edit link
updating records, SqlDataSource, 379 Edit method, MVC
adding to model, 1401, 1402 consolidating data store access, 1390 creating controller, 1383, 1384 validating data, 1404
Edit mode, DetailsView, 453, 454 Edit verb, 1364 Edit view, MVC
adding to model, 1398, 1400 validating data, 1404
Edit.aspx, Dynamic Data creating custom page template, 1424 route discovery by table, 1439 using entity templates, 1425
Edit.aspx, MVC adding to model, 1398, 1402 validating data, 1404
EditDisplayMode, WebPartManager, 1327 EditIndex property, GridView, 437 editing records see updating records EditItemTemplate property
FormView, 454, 456 GridView, 433, 437, 442 ListView, 445
Editor control, AJAX, 1313 editor web parts, 1350 EditorPart class, 1351, 1352, 1354 EditorWebZone control, 1348 EditorZone control, 1330, 1348, 1351 EditRowStyle property, GridView, 409 EFS (Encrypting File System), 536 Element method, XElement, 645, 646, 648 element tag, XML schemas, 627 elements
inserting, web.config, 808 removing, web.config, 809–810 selecting, XPath, 652 Silverlight, 1472–1473 well-formed XML, 624 XHTML compliance, 82
Elements method, XElement, 645, 646 LINQ to XML methods, 655
ElementsAfterSelf method, 653 ElementsBeforeSelf method, 653 ellipse
AddEllipse method, 1156 DrawEllipse method, 1153 FillEllipse method, 1154
Ellipse class, Silverlight, 1473 Ellipse element, Silverlight, 1484
e-mail addresses regular expressions, 166 valid addresses, 164
Email ID CreateUserWizard template, 920
embed tags script injection attacks, 1210
embedding dynamic graphics in web pages, 1162–1172
custom controls that use GDI+, 1167–1172 passing information to dynamic images,
1164–1166 using PNG format, 1163
EmployeeDB class, 321, 322, 328 EmployeeDetails class, 318, 323, 328 empty elements
well-formed XML, 624 Empty Web Application template, 805 EmptyDataRowStyle property, 409 EmptyDataTemplate property
FormView, 454 GridView, 433 ListView, 445
EmptyItemTemplate property, 445, 450 Enable remote connections option, IIS
Manager, 805 ENABLE_BROKER flag, notifications, 506 EnableCaching property, 373, 496 EnableClientScript property
BaseValidator, 161 RequiredFieldValidator, 253
enableCompression setting, web.config, 263 enableCrossAppRedirects attribute, 862 enabled attribute, web.config, 119 Enabled property
BaseValidator, 161 ListItem, 155 roleManager, 978 Timer control, 1281 WebControl, 138
Enabled value, ViewStateMode, 243, 244 EnableEventValidation attribute, 298 EnableEventValidation property, 1243 enableExport attribute, web.config, 1371 EnableHistory property, 1285 enableHtmlAccess parameter, 1468 EnablePageMethods property, 1263 EnablePaging property, 425 EnablePartialRendering property, 1273 enablePasswordReset property, 895 enablePasswordRetrieval property, 895 EnablePersistedSelection property, 401, 422,
425
■ INDEX
1549
EnableSecureHistoryState property, 1287 EnableSession property, 1258 EnableSortingAndPagingCallbacks property,
429, 435 EnableTheming attribute, Page directive, 719 EnableTheming property, 715 enableViewState attribute, 243 EnableViewState property, 78, 92, 243, 244
Control class, 125 control state, 1129 GridView, 613 Label, 94, 96 optimizing UpdatePanel, 1279 performance of MultiView pages, 742
enableViewStateMac attribute, 244 EnableViewStateMAC property, 244 encapsulation, server-based controls, 10 encoding
HTML encoding, 112–113 SSL, 850 text encoding, 548 URL encoding, 112–113, 247
Encoding class, 1047 Encrypt method, FileInfo, 536 EncryptData method, 1045, 1046, 1052 Encrypted value, FileAttributes, 535 EncryptedQueryString class, 1060
creating test page, 1063 ToString method, 1060, 1061, 1062
encryption, 842 abstract classes, 1039 asymmetric encryption, 846
algorithms, 1038, 1050–1053 command-line encryption, 210 configuration sections, 208–210 CryptoStream class, 1040–1041 data, 1031
in database, 1054–1059 managing secrets, 1041–1043 sensitive data, 1041–1058
files, 536 ICryptoTransform interface, 1039–1040 machineKey element, 189 .NET cryptography namespace, 1032–1035 profiles, 998 programmatic encryption, 209–210 protection attribute, forms tag, 861 query string, 1059–1064 RegisterRequiresViewStateEncryption
method, 245 symmetric encryption, 846
algorithms, 1037–1038, 1043–1050
SymmetricEncryptionUtility class, 1048–1050
view state, 245 ViewStateEncryptionMode property, 245
EncryptPassword method, 1088 End event, 186, 188
SessionStateModule, 259 EndCap property, Pens, 1158 EndExecuteReader method, 518, 520, 522, 523 EndPageLoad function, JavaScript, 1201 EndpointAddress object, Silverlight, 1512 EndRead class
BeginRead method, 515 EndReader method, SqlDataReader, 515 EndRequest event
HttpApplication, 183, 184, 185 PageRequestManager, 1276, 1278, 1299
EndRequestEventArgs class, 1299 EndTask method, 517, 522 EnforceConstraints property, DataSet, 340 EnsureChildControls method, 1344 Enter key
DefaultButton property, HtmlForm, 146 enterprise services
System.EnterpriseServices.dll assembly, 43 entities
HTML entities, 112 LINQ to Entities, 14, 563, 581–595
entity classes creating partially populated classes, 597 insert database operations, 595 inserting associated entities, 597–599 LINQ to Entities, 584–585
Entity Data Model Browser window, 587 Entity Data Model Wizard, 582 Entity Framework data model
binding chart to LINQ, 1187 creating model, MVC application, 1378 database operations, 595
concurrency, 600–605 handling concurrency conflicts, 601
delete database operations, 599 insert database operations, 595–599 LINQ to Entities, 581
data model classes, 582–585 generating data model, 582
modifying views, MVC, 1394 optimistic concurrency model, 600 stored procedures, 587 update database operations, 599 validation, EntityDataSource, 614 viewing SQL queries, 589
■ INDEX
1550
entity relationships LINQ to Entities, 586–587 one-to-many relationships, 586 one-to-one relationships, 587
entity templates, Dynamic Data, 1422 customizing websites, 1424–1429
EntityCollection class delete database operations, 599 explicit loading, LINQ to Entities, 593 insert database operations, 595 one-to-many relationships, 586, 587
EntityDataSource control, 607–614 displaying data, 607–611 editing related data, 612–613 getting related data, 611–612 QueryExtender control, 615–619 validation, 613–614
EntityDataSourceValidationException class, 614
EntityReference(Of TEntity), 587 EntitySetName property, 609 EntityTemplates folder, Dynamic Data, 1422,
1425, 1427 entry page, Silverlight, 1465–1469 enum keyword, 1257 EnumerableRowCollection(Of T) class, 579 enumeration data types, 1257 enumerations
CacheItemPriority 495, 496 CacheItemRemovedReason, 504 ClientIDMode, 88 CommandBehavior 290 CommandType 285 CompressionMode 557, 558 ConfigurationSaveMode 202 CryptoStreamMode 1040 DashStyle 1158 DataProtectionScope 1043 DetailsViewMode 453 FileAccess 553 FileAttributes 534, 535 FileMode 546 HtmlTextWriterAttribute 1111 HtmlTextWriterStyle 1111 HtmlTextWriterTag 1111 HttpCookieMode 264 IsolationLevel 308 JsonRequestBehavior 1411 PageAction 1433 ProfileAuthenticationOption, 1013 RefreshMode 602, 603 StoreLocation, 1033, 1034 TreeViewImageSet 786
UnitType 141 web controls, 142 WindowsBuiltInRole 952, 953 WizardStepType 743
@@ERROR value, 305 error 500.21, 804 Error event
HttpApplication, 187 using PrincipalPermission attribute, 974,
975 error handling
adding, MVC application, 1387–1389 asynchronous pages, 518–520 building data access component, 317 catching unhandled errors, 188 Common Language Runtime, 8 SqlDataSource control, 378 UpdatePanel, 1275–1276
Error List window, Visual Studio, 35, 38–40 Error type, AJAX, 1294 error underlining, Visual Studio, 48 ErrorMessage property
BaseValidator, 161, 162, 168, 169 Dynamic Data, 1451 MVC, 1408
errors Application_Error event, 186, 188 canonicalization error, 539 RAISERROR statement, 306 transactions, 305, 306
Eval method, DataBinder, 414, 430, 431, 440 event attributes, JavaScript
adding declaratively, 1193 embedding, 1189, 1190, 1192 script blocks, 1194
event bubbling, 436 event compatibility tables, 1191 event handlers
see also handlers Application_OnEndRequest, 184 connecting events to, 57–58 creating for Button.Click event, 41 global.asax application file, 183 PageFlow example, 95 performing cross-page posting in, 250–251 private or protected, 96
event handling ASP.NET web forms, 93 dragging circles on Silverlight Canvas, 1485 events from other modules, 231 GridView template, 436–437 Silverlight, 1479 server-side events, 133–136
■ INDEX
1551
testing logic, 42 web control events, 147–150 user controls, 686–687
event models, 75 event validation, 298
disabling, Ajax, 1242–1243 EnableEventValidation attribute, 298
EventArgs class adding events to user control, 693 calling web services, Silverlight, 1511 handling web control events, 149
event-driven model, 75 EventLog class, 229 EventName attribute, AsyncPostBackTrigger,
1278 events
adding, user controls, 693–696 application events, 185–188 ASP.NET, 41 Authenticate event, 858, 899 automatic postbacks, 76–77 change events, 93 client-side events, JavaScript, 1191–1193 connecting to event handlers, 57–58 CreateUserWizard control, 921 data source controls, 389 EndRequest event, 183, 184 HTML Control Events, 133 immediate response events, 93 Login control, 907–908 onmouseover event, 1191, 1192 onxyz events, 1191 PasswordRecovery control, 914 postbacks and change events, 1131–1134 ServerChange event, 133, 134–136 ServerClick event, 133, 134–136 SqlDataSource control, 377, 378 using PrincipalPermission attribute, 974 web control classes, 139 when task is finished, 389 while task is underway, 389 Wizard events, 746–747
Exception class Message property, 297
exception classes, 282 ArgumentException, 614 EntityDataSourceValidationException, 614 IndexOutOfRangeException, 287 InvalidCastException, 287 InvalidOperationException, 282 MembershipCreateUserException, 883 NoSuchRecordException, 1388 NotImplementedException, 1018, 1297
NotSupportedException, 499 OdbcException, 282 OleDbException, 282 OptimisticConcurrencyException, 601, 602,
603, 604 OracleException, 282 SecurityException, 530 SerializationException, 558 SqlException, 282 XmlSchemaValidationException, 657
Exception property SqlDataSourceSelectingEventArgs, 378 SqlDataSourceStatusEventArgs, 384
ExceptionHandled property, 378 exceptions
handling errors, UpdatePanel, 1275 ExceptionType property, 1388 exclusive locks, 308 .exe files, Windows, 179 ExecuteNonQuery method, 286, 294, 301 ExecuteReader method, 286, 287–288, 290, 465 ExecuteScalar method, 286, 293 Exists method
Directory class, 528 File class, 529
Exists property, 531 ExpandDepth property, TreeView, 777 Expanded property, TreeNode, 777 ExpandImageUrl property, TreeView, 782, 785 expiration parameters, 492 Expired value, CacheItemRemovedReason, 504 Expires property, HttpResponse, 108 ExpiresAbsolute property, HttpResponse, 108 explicit loading, LINQ to Entities, 593–594 explorer windows, Visual Studio
Server Explorer, 40 Solution Explorer, 36–37
Export verb, 1370 ExportMode property, WebPart, 1332, 1368,
1371 expression builders, data binding, 355–358 Expression Editor, 610 Expression property, DataColumn, 340, 348 Expression Web, Microsoft
configuring hotspots in, 1144 ExpressionBuilder class, 356 expressions
$ expressions, 354–355 custom expression builders, 355–358 data binding expressions, 352–354 LINQ expressions, 567–577 showing result as ordinary text, 355
extenders see control extenders, ASP.NET AJAX
■ INDEX
1552
extensibility, 623 extensibility methods, Dynamic Data, 1454–
1456 extensible caching, 17 extensible metadata, CLR, 8 extension methods, LINQ, 573, 575–576
AsDataView, 578, 579 AsEnumerable, 578 Field(Of T), 578 Include, 592 LINQ to DataSet, 654 LINQ to SQL, 654 LINQ to XML, 654 Select, 575, 576 SelectMany, 587 using XPath searches with XDocument, 653
Extension property DirectoryInfo class, 531 FileInfo class, 531
Extensions class, 653 LINQ to XML methods, 655 Validate method, 658
F FactoredProfileProvider class, 1020–1029
coding, 1021–1025 designing, 1020–1021 Initialize method, 1021–1022 reading profile information, 1023–1024 testing, 1026–1029 updating profile information, 1025
factory classes DbProviderFactories class, 311 OracleClientFactory class, 311 SqlClientFactory class, 311
factory method entity classes, LINQ to Entities, 584
factory model provider-agnostic code, 311–312
creating objects with factories, 312–313 queries with provider-agnostic code, 313
FailureAction property, Login, 904 FailureText control, Login, 909 FailureText ID
Login template, 907 PasswordRecovery template, 916
FailureText property, Login, 903 FailureTextStyle property, Login, 902 feature delegation, 948 field formatting, Dynamic Data websites
customizing sites with metadata, 1448–1449
field properties entity classes, LINQ to Entities, 584
field templates, Dynamic Data websites customizing sites with metadata, 1450 customizing sites with templates,
1429–1432 Field(Of T) method, LINQ, 578
LINQ to DataSet, 580 FieldCount property, DataReader, 287 fields
defining, DetailsView, 453 editing using lookup table, 461–463 formatting, GridView, 407–408
FieldTemplates folder, Dynamic Data, 1422 customizing websites with metadata, 1450 customizing field templates, 1429
figures CloseFigure method, 1157 StartFigure method, 1157
file access objects locking, 556–557
file and cache item dependencies, 500, 501 file authorization, 972 File class, 527, 528–530
methods, 529 ReadAllBytes method, 529, 549 ReadAllText method, 529, 549
file management project-based development, 59 projectless development, 59
file mappings, IIS, 799 file system
file-browsing application, 541–546 working with attributes, 534–536 working with file system, 527–546
file system classes Directory class, 527, 528–530 DirectoryInfo class, 527, 530–533 DriveInfo class, 527, 533–534 File class, 527, 528–530 FileInfo class, 527, 530–533 Path class, 538–540
File System type, Choose Location dialog box, 26
file type, input tag, 129 FileAccess enumeration, 553 FileAttributes enumeration, 534, 535 FileAuthorizationModule class, 972 file-browsing application, 541–546 FileBuildPart property, 537 FileCopy application, 831 FileCopy directory, 800, 801, 804 FileDescription property, 538
■ INDEX
1553
FileExists method, VirtualPathProvider, 823, 824 FileInfo class, 527, 530–533
Attributes property, 531, 535 CopyTo method, 532 Create method, 532 CreateText method, 532 creating, 532 CreationTime property, 531 Decrypt method, 536 Delete method, 531 Directory property, 532 DirectoryName property, 532 Encrypt method, 536 Exists property, 531 Extension property, 531 file-browsing application, 541, 544 FullName property, 531 LastAccessTime property, 531 LastWriteTime property, 531 Length property, 532, 541 MoveTo method, 531 Name property, 531, 1166 Open method, 532 OpenRead method, 532 OpenText method, 532 OpenWrite method, 532 passing information to dynamic images,
1166 Refresh method, 531, 533 working with attributes of file system, 534–
536 FileList property, 269 FileMajorPart property, 537 FileMinorPart property, 537 FileMode enumeration, 546, 552 FileName property, 537, 1097 filenames, creating unique, 553–556 FilePath property, 107, 353 FilePrivatePart property, 537 FileResult class, MVC, 1410 files
ASP.NET file types, 36 controlling access, 970 default editor, 37 encryption, 536 extending configuration file structure,
204–208 creating section class, 204–206 registering section class, 206–208
filtering with wildcards, 536 GetFileName method, 540 GetFileNameWithoutExtension method, 540 GetFiles method, 531
global.asax application file, 183–188 machine.config file, 189–191 multiple users accessing, 552–557
locking file access objects, 556–557 creating unique filenames, 553–556
reading and writing with streams, 546–558 binary files, 549–550 text files, 547–549 uploading files, 550–552
reading XML files, 632–635 retrieving version information, 537 serialization, 558–561 Solution Explorer, 36 web.config file, 191–195 working with file system, 527–546 writing XML files, 628–632
FileStream class, 546, 547 BeginRead method, 515 Close method, 547 compression, 557 constructor, 546, 552 FileMode enum, 546 Lock method, 553
FileSystemInfo class, 530 FileUpload control, 139, 550
PostedFile property, 551 using on page with UpdatePanel, 1276
FileVersion property, 537 FileVersionInfo class
GetVersionInfo method, 537, 545 properties, 537–538
Fill method, DataAdapter, 334, 336 FillBehavior property, Animation, 1498, 1503 FillClosedCurve method, 1154 FillEllipse method, 1154 FillPath method, 1154, 1156 FillPie method, 1154 FillPolygon method, 1154 FillRectangle method, 1150, 1154 FillRectangles method, 1154 FillSchema method, DataAdapter, 334 FillXyz methods, Graphics, 1154, 1160 filter operators, 345 Filter option, breakpoints, 68 FilteredTextBoxExtender control, AJAX, 1310 filtering
caching with SqlDataSource, 498, 499 DataView class, 345–347
with relationships, 347–348 files with wildcards, 536 LINQ expressions, 569–570 LINQ to DataSet, 579 Pascal case filtering, 49
■ INDEX
1554
filtering too late LINQ to Entities queries, 590–591
filtering, Visual Studio, 49–50 navigation tools using, 51
filters MVC, 1387 MethodExpression filter, 618–619 PropertyExpression filter, 617–618 QueryExtender control, 615–619 RangeExpression filter, 616–617 SearchExpression filter, 615–616
Filters folder, Dynamic Data, 1422 finally block
releasing connections promptly, 282, 283 $find alias, ASP.NET AJAX, 1303 FindAll method, List (Of T) class, 1094 FindControl method
Control class, 126, 909, 916, 917 CreateUserWizard control, 923 dynamically loading user controls, 697 encrypting sensitive data in databases, 1055 LoginView, 1055 MasterPage class, 733 Page, 104, 105, 170, 697 PasswordRecovery templates, 916, 917 programming Login control, 909 using validators programmatically, 170
FindInactiveProfilesByUserName method, 1014, 1019
FindProfilesByUserName method, 1014, 1019 FindSiteMapNode method, 762 FindUsersByEmail method, 1094 FindUsersInRole method, 984 FindUsersInRoles method, 1100 FinishButtonClick event, Wizard, 746, 747 FinishNavigationTemplate property, 749 FinishPreviousButtonStyle property, 748 firehose cursor, 286 firewall configuration, FTP, 816 FirstBulletNumber property, 156 FirstDayOfWeek property, 176 FirstPageText property, 429 Fixed Decimal type format string, 407 Flash
Silverlight compared, 1457, 1459–1460 flexibility, XML, 623 Flush method, StreamWriter, 548 FlushFinalBlock method, 1047 focus
DefaultFocus property, 145 managing with access keys, 146 SetFocusOnError property, 161
web controls, 144–146 WebForm_AutoFocus method, 145
Focus method, web controls, 144–146 folders
Add ASP.NET Folder submenu, 37 themes, 711
Font object drawing with GDI+, 1150 rendering GDI+ custom controls, 1170
Font property, web controls, 138, 143–144 FontInfo object, 143, 1150 fonts, web controls, 143–144 FooterRow property, 456 FooterStyle property, 405, 409 FooterTemplate property, 433, 454 FooterText property, 404 For Each block, LINQ, 564, 565 ForeColor property, WebControl, 138 foreign key constraints
adding support for, MVC, 1393 entity relationships, LINQ, 586 navigation properties, 584
Form collection, 74 DefaultFocus property, 145 view state, 78
form feed, metacharacter matching, 164 Form property, HttpRequest, 107 form tag, 72, 73
ASP.NET, 74 HtmlForm control class, 128
Format HTML on Paste option, Visual Studio, 33 Format Selection command, Visual Studio, 33 format strings, 407
numeric, 407 time and date, 408
formatting defining personal rules, 32 master pages, 726
formatting GridView, 406–414 formatting fields, 407–408 formatting-specific values, 412–414 styles, 408–412
Formatting property, XmlTextWriter, 629 Formatting settings, HTML, 33 FormParameter tag, 376 forms
see also web forms HTML forms, 72–74
forms authentication, 853–859 ASP.NET AJAX application services,
1265–1267 security, 1269
classes, 858–859
■ INDEX
1555
configuring, 859–863 membership API, 884, 885–886
controlling appearance of login forms, 855 controlling authentication code, 855 controlling role access, URL authorization,
970 controlling user access, URL authorization,
968 cookie authentication, implementing,
857–858 cookieless forms authentication, 870 cookies, 853
persistent cookies, 872–873 creating custom login page, 864–870
cookieless forms authentication, 870 hashing passwords in web.config,
869–870 logging out, 868
creating login interface, 856 credentials, 862, 867 custom credentials store, 871 denying access to anonymous users,
863–864 IIS 7.x and, 873–879 implementing, 859–873 intercepting network traffic, 857 Login control, 855, 899 login controls, 124 machineKey element, 189 maintaining user details, 856 membership API, 856, 857, 881 process illustrated, 854 reasons against, 856–857 reasons for, 854–856 replay attack, 857 storing user information, 855 ticket-based system, 853 web.config file, 859–863 working with range of browsers, 855
Forms Collection section, trace log, 115 forms tag, web.config, 859–862 FormsAuthentication class, 858
Authenticate method, 867, 868 creating custom login page, 864, 867, 868 GetAuthCookie method, 872, 873 GetRedirectUrl method, 873 HashPasswordForStoringInConfigFile
method, 869 RedirectFromLoginPage method, 899, 900
controlling user access, URL authorization, 968
creating custom login page, 867, 868
custom credentials store, 871 persistent cookies, 872
SetAuthCookie method, 872 SignOut method, 868, 872
FormsAuthenticationEventArgs class, 858 FormsAuthenticationModule class, 858, 859,
860 Authenticate event, 858 defaultUrl attribute, 862 IIS 7.x, 878, 991, 993
FormsAuthenticationTicket class, 859 FormsIdentity class, 859 FormView control, 365, 451, 454–456
data binding, 373 editing with CommandName property, 455,
456 file-browsing application, 544 inserting records, 384 template model, 454 updating records, 379
Forward button browser history, 1284, 1286
FPSE (Front Page Server Extensions), 804 fragment caching see partial caching frame-based animation, Silverlight, 1494 frames, 1225–1228
frame navigation, 1225–1227 iframe tag, 1227 inline frames, 1227–1228 standardizing website layout, 721 XHTML compliance, 82
Frames property, HttpBrowserCapabilities, 1124
frameset doctype, XHTML, 84 framework version
creating projectless website, 24–25 FrameworkElement class, 1482 free space
AvailableFreeSpace property, 534 DriveInfo class, 533, 534 TotalFreeSpace property, 534
friendly URLs, 774 From clause, LINQ expressions, 567 From property, Animation, 1498, 1506 FromBase64String method, 1048 FromFile method, Image, 1165 FromImage method, Graphics, 1150 FromXml method, 1052 Front Page Server Extensions (FPSE), 804 FTP deployment approach, 813–819
creating website, 814 deploying project-less website, 817–819 deploying website, 815–816
■ INDEX
1556
firewall configuration, 816 preparing IIS, 813–814
FTP Site type. Choose Location dialog, 27 FTPDeploy directory, 815 FullName property, 531, 542 Function type, AJAX, 1294 functions, JavaScript, 1190
closures, 1290–1291 namespaces, 1295–1296 script blocks, 1193, 1194
■G GAC (global assembly cache), 182 gacutil.exe utility, 799 garbage collection, CLR, 8 gatekeepers, 839–840 GDI+, 1143, 1149–1161
Brushes class, 1160 custom controls using, 1167–1172 drawing with, 1150–1151 Graphics class, 1149, 1153–1156 GraphicsPath class, 1156–1157 image format and quality, 1151–1153 namespaces, 1149 passing information between pages, 1172 Pens class, 1157–1159 performance, 1162 rendering pages, 1169–1172 using in ASP.NET, 1149
General settings, HTML, 33 General Toolbox tab, 38 GenerateKey method
abstract encryption classes, 1039 AsymmetricAlgorithm, 1051, 1052 SymmetricEncryptionUtility, 1050 SymmetricAlgorithm, 1045
GenericWebPart class connecting web parts, 1356 Controls collection, 1334 creating custom web part editor, 1354 creating web parts, 1330, 1331 implementing IWebPart interface, 1335,
1337 $get alias, ASP.NET AJAX, 1262, 1303 Get method, OutputCacheProvider, 487, 488,
489 get_isLoggedIn method, 1266 get_message method, 1262 get_roles method, 1268 get_stacktrace method, 1262 GetAccessControl method, 528, 529 GetAllEmployees method, 341
GetAllEmployees stored procedures, 320 GetAllInactiveProfiles method, 1013, 1019 GetAllProfiles method, 1013, 1019 GetAllRoles method, 984 GetAllUsers method, 930 GetAnonymous method, 954 GetAttributes method, 529 GetAuthCookie method, 872, 873 GetBytes method
DataReader, 465, 466 HexEncoding, 1062 UTF-8 encoding, 1048
GetCacheDependency method, 825 GetCallbackEventReference method, 1241 GetCallbackResult method, 1239, 1246 GetCallbackScript method, 1248 GetChar method, DataReader, 287 GetChildNodesDescr method, 636, 637, 639 GetChildRows method, 338 GetClrVersions method, 1124 GetCodeExpression method, 356 GetCoordinates method, 1148 GetCreationTime method, 528, 529 GetCurrent method, WindowsIdentity, 954, 962 GetCurrentDirectory method, 528 GetData method, 1182 GetDateTime method, 287, 289 GetDescriptionFromTitle method, 791, 792 GetDirectories method, 528, 531, 537 GetDirectoryName method, 540 GetDrives property, 534 getElementById method, 1196, 1262 GetElementsByTagName method, 648, 649,
650, 651 GetEmployee method, 323 GetEmployee stored procedures, 320 GetEmployees method, 323 GetFactory method, 311 GetFile method, 823, 824 GetFileFromDB function, 824 GetFileHash method, 825 GetFileName method, 539, 540, 554 GetFileNameWithoutExtension method, 540 GetFilePath function, 353 GetFiles method, 528, 531, 537, 1166 GetFullPath method, 540 GetHierarchicalView method, 672 GetHistory method, Wizard, 747 GetImageUrl method, 1166, 1206 GetInt32 method, 287 getInterfaces method, 1293 GetLastAccessTime method, 528, 529 GetLastError method, 111
■ INDEX
1557
GetLastWriteTime method, 528, 529 GetLogicalDrives method, 528 GetNumberOfInactiveProfiles method, 1013,
1019 GetNumberOfProfiles method, 1013 GetNumberOfUsersOnline method, 1095 GetOutputCacheProviderName method, 490 GetParent method, 528 GetPassword method, 931 GetPathRoot method, 540 GetPostBackEventReference method, 1134,
1224 GetProfile function, 1012 GetPropertyValue method, 1004 GetPropertyValues method, 1018, 1023, 1024 GetRandomNumber method, 356, 357 GetRedirectUrl method, 873 GetRole method, 1078, 1099 GetRolesForUser method, 984 GetRolesForUsers method, 1100 GetRouteUrl method, 776 GetSection method
Configuration class, 201 ConfigurationManager, 206 WebConfigurationManager, 200, 201, 202
GetSiteMap stored procedure, 770 GetStore method, 1073, 1074 GetString method
DataReader class, 289 HexEncoding, 1062 UTF-8 encoding, 1048
getType method, JavaScript, 1294 getTypeName method, 1294, 1295 GetUser method
Membership, 928 UserStore, 1093 XmlMembershipProvider, 1095
GetUserByName method, 1093 getUserProcedure attribute, 1020 GetUsersInRole method, 985 GetValidators method, 171 GetValue method, DataReader, 287, 292 GetValues method, 287 GetVaryByCustomString function, 480 GetVersionInfo method, 537, 545 GetXml method, DataSet, 333, 677 GetXmlDocument method, 666, 677 GetXmlSchema method, 333, 677 GetXNavDescr method, 640 GIF format, GDI+, 1151 global application class, 184 Global Application Class template, 184 global application file, ASP.NET, 36
global resources App_GlobalResources directory, 183
global themes, 711 global.asax application file, 180, 183–188
application events, 185–188 event handlers, 183 HttpApplication.EndRequest event, 183, 184 methods, 183 separating content of, 184
global.asax event handler, 266 global.asax file, 36
changing URL format, routes, 1435 configuring routing, MVC, 1385, 1386 custom caching, 480 managing automatic saves, 1010, 1011 shared application variables, 268, 269
global.asax file, Dynamic Data, 1422 constraining routes, 1435, 1437 creating website, 1417 switching to single-page editing, 1437 using different templates for tables, 1438,
1441 globalization element, web.config, 407 GradientLabel class, GDI+, 1167, 1168–1169,
1170 graphics
see also GDI+ Chart control, 1172–1187
creating charts, 1172–1178 populating chart with data, 1179–1187
embedding dynamic graphics in web pages, 1162–1172
custom controls that use GDI+, 1167–1172 passing information to dynamic images,
1164–1166 using PNG format, 1163
ImageMap control, 1143–1149 Graphics class, 1149, 1153–1156
Dispose method, 1151 DrawIcon method, 1153, 1154 DrawImage method, 1153, 1154 DrawPath method, 1153, 1156 DrawString method, 1151, 1154, 1170 DrawXyz methods, 1153–1154
Pen object, 1154, 1157 FillPath method, 1154, 1156 FillRectangle method, 1150, 1154 FillXyz methods, 1154
Brush object, 1154, 1160 FromImage method, 1150 MeasureString method, 1170 passing information to dynamic images,
1165
■ INDEX
1558
SmoothingMode property, 1152 TextRenderingHint property, 1152
GraphicsPath class, 1149, 1156–1157 AddXyz methods, 1156–1157 StartFigure method, 1157 Transform method, 1157 Warp method, 1157 Widen method, 1157
greater-than symbol (>) > entity, HTML, 112
greedy matching, 1140 Grid class, Silverlight, 1473, 1481 Grid layout container, Silverlight, 1488–1494
Column property, 1489 ColumnDefinitions collection, 1488, 1489 fine-tuning rows and columns, 1490–1491 nesting layout containers, 1491–1492 Row property, 1489 RowDefinitions collection, 1488, 1489 ShowGridLines property, 1488, 1489 spanning rows and columns, 1493
grid layout mode absolute positioning, 29
GridLines property, 406 GridSplitter class, Silverlight, 1473, 1474 GridView control, 365, 402–444
adding web parts to pages, 1324 AllowPaging property, 424 AllowSorting property, 418, 419 AutoGenerateColumns property, 402, 403
displaying full list of users, 1014 AutoGenerateDeleteButton property, 383 AutoGenerateEditButton property, 379, 437 automatic column generation, 402, 403 bound to DataTable with filters, 346 BoundField properties, 404 Caption property, 406 CaptionAlign property, 406 CellPadding property, 406 CellSpacing property, 406 ClientIDMode property, 443 ClientIDRowSuffix property, 443, 444 code-free scenarios, 402 column types, 402 Columns collection, 403 concurrency conflicts, detecting, 469–474 configuring cell spanning, 458 creating custom web parts, 1343, 1345 customizing Dynamic Data websites with
templates, 1422 data binding, 373 data source controls, 374 DataBind method, 342
DataBound event, 457, 458 DataKeyNames property, 415, 416
deleting records, 383 strict concurrency checking, 381
DataMember property, 342 DataSource property, 342 DataSourceID property, 372 defining columns, 402–406 deleting records, 383, 395 displaying binary data, 464–465 displaying data, EntityDataSource, 607, 610,
611 downloading images asynchronously, 1203,
1204 EditIndex property, 437 editing field using lookup table, 461–463 EnablePersistedSelection property, 422, 425 EnableSortingAndPagingCallbacks
property, 429, 435 EnableViewState property, 613 file-browsing application, 541–544 filling through data binding, 343, 344 filtering with relationships, 348 FooterRow property, 456 formatting fields, 407–408 formatting GridView, 406–414 formatting-specific values, 412–414 getting related data, EntityDataSource, 611 GridLines property, 406 hiding columns, 403 implementing provider web parts, 1357,
1358 inserting records, 384 integrating images with other content,
466–469 nested grids, XML data binding, 671 nonhierarchical binding, XML, 666, 667 PageIndex property, 424 PageIndexChanged property, 424 PageIndexChanging property, 424 PagerSettings property, 424, 428 PagerStyle property, 424, 428 PageSize property, 424, 426 paging, 423–430
automatic paging, 423–424 custom pagination with
ObjectDataSource, 425–428 customizing pager bar, 428–430 paging and selection together, 425
parent/child view in single table, 458–460 passing information to dynamic images,
1164, 1165, 1166 processing multiple result sets, 292
■ INDEX
1559
properties supporting paging, 423 reading binary data efficiently, 465–466 regenerating GridView columns, 403 repeated-value binding, 366–367 retrieving users from membership store,
928 RowCommand event, 418, 436, 694 RowDataBound event, 412, 435, 460 RowUpdating event, 440 scrolling GridView, 406 SelectedDataKey property, 415, 416 SelectedIndex property, 415, 418 SelectedIndexChanged event, 415, 417, 418 SelectedIndexChanging event, 415 SelectedValue property, 463 selecting rows, 414–418
master-details form, 415–417 using data field as Select button, 418
serving images from database, 463–469 ShowFooter property, 456 Sort method, 422 sorting and paging callbacks, 429 Sorting event, 422 sorting GridView, 418–423
programmatic sort, 422 sort and select at same time, 421 with ObjectDataSource, 419–421 with SqlDataSource, 419
style properties, 408 styles, 408–412
configuring with Visual Studio, 411–412 defining, 409–411
summaries, 456–458 triggering postbacks, 1134 updating records, 379, 380 using UpdatePanel with, 1279 XPath data binding expressions, 668
GridView templates, 379, 430–444 AlternatingItemTemplate property, 433 binding to a method, 434–435 client IDs in, 443–444 editing templates in Visual Studio, 433 editing with templates, 437–443 editing without command column, 441–443 EditItemTemplate property, 433 EmptyDataTemplate property, 433 FooterTemplate property, 433 handling events in, 436–437 HeaderTemplate property, 433 InsertItemTemplate property, 433 ItemTemplate property, 430, 432, 433 PagerTemplate property, 433
using multiple templates, 432–433 GridViewRow control
DataItem property, 412 Group clause, LINQ expressions, 571 grouping
LINQ expressions, 571–573 ListView control, 448–450
GroupItemCount property, 448 groups
authorization, IsInRole method, 973 controlling role access, 970, 971 profile groups, 1007–1008
GroupSeparatorTemplate property, 445 GroupTemplate property, 445, 449 Guest role, WindowsBuiltInRole, 953 GUID (global unique identifier), 553, 554 GZipStream class, 557
■H HACK comment/token tag, 35, 40 HandleError filter, MVC, 1387, 1388 Handler Mappings summary screen, 831, 832 handlers
see also event handlers; HTTP handlers asynchronous handlers, 226, 227 integrated pipeline, 831–833
handlers element, web.config, 196 Handles clause, 95 Handles keyword, VB, 695 handling errors
asynchronous pages, 518–520 handling events from other modules, 231 HasChanged property, CacheDependency, 508 HasChildNodes property, XmlNode, 639 HasControls method, 126 HasExtension method, Path, 540 hash codes
salted password hashes, 1034 view state, 244, 245
hash value, Digest authentication, 939 HashAlgorithm class, 1036 hashes
salted password hashes, 1091–1093 hashing passwords in web.config, 869–870 HashPasswordForStoringInConfigFile method,
869, 1093 Hashtable collections
repeated-value binding, 360 HasSharedData property, WebPart, 1332 HasUserData property, WebPart, 1333 HatchBrush class, 1160
■ INDEX
1560
head element applying stylesheet rules, 708 using CSS in themes, 718
head tag accessing, 101 server-side control, 102
header control creating user control, 684–686
HeaderImageUrl property, 404 headers
adding different metatag to, 102 HtmlHead class, 130 page header, 101–103
Headers Collection section, trace log, 115 Headers property, HttpRequest, 107 HeaderStyle property
GridView, 405, 408 Wizard control, 748
HeaderTemplate property FormView, 454 GridView, 433 Wizard control, 749
HeaderText property BoundField, 404 Wizard control, 748
Height property RowDefinition, 1491 WebControl, 138
helper methods, MVC, 1396 HelpMode property, WebPart, 1333, 1350 HelpPageIconUrl property, 905 HelpPageText property, 904 HelpPageUrl property, Login, 904 HelpUrl property, WebPart, 1333, 1334, 1350 HexEncoding class, 1062 Hidden property, WebPart, 1333 hidden type, input tag, 129 Hidden value, FileAttributes, 535 HiddenField control, 139 hierarchical binding with TreeView, 672–674 hierarchy see inheritance hierarchy highlighting, variable, 50 history see browser history Hit Count option, breakpoints, 68 HomeController class, MVC
adding authentication, 1389 configuring routing, 1386 modifying Site.Master file, 1385
HorizontalPadding property, TreeNodeStyle, 782
HotSpot class custom hotspots, 1146–1149 properties, 1145
HotSpotMode property, 1145 hotspots
CircleHotSpot class, 1144 PolygonHotSpot class, 1144 RectangleHotSpot class, 1144
HotSpots collection, 1143 HotSpots property, 1144, 1145 hotspots, ImageMap, 1144–1149
creating, 1144–1145 custom hotspots, 1146–1149 disabling, 1145 handling clicks, 1145–1146 overlapping hotspots, 1145
hover event, HoverButton, 1302, 1303 HoverButton class, 1300, 1301, 1303 hoverHandler delegate, 1301 HoverMenuExtender control, AJAX, 1310 HoverNodeStyle property, TreeView, 784 HRef property, HtmlAnchor, 131 HTML
CheckBoxFor method, MVC, 1395 Dynamic HTML, 1190 events of HTML objects, 1191 generating for custom controls, 1110 InnerHtml property, 127 properties of HTML objects, 1196 representing controls in, 72 structuring HTML markup, 32–34 transforming XML to, 662 ValidationSummary method, MVC, 1405 XHTML compliance, 82–87
HTML controls ASP.NET, 10 events, 133
HTML DOM, 1190–1191 manipulating HTML, JavaScript, 1195
HTML element, configuring, 31 HTML encoding, 112–113 HTML entities, 112
InnerText property, 127 HTML Formatting settings, Visual Studio, 33 HTML forms, 72–74
submitting pages, 76 HTML frames, 721 HTML General settings, Visual Studio, 33 HTML helper methods, MVC, 1396 HTML Miscellaneous settings, Visual Studio, 33 HTML server controls, 123, 126–136
change events, 136 classes, 128–130 CSS for style attributes, 136 handling server-side events, 133–136 inheritance hierarchy, 126
■ INDEX
1561
programmatically creating server controls, 131–133
quick migration to ASP.NET, 136 runat="server" attribute, 128 setting style attributes, 130, 136 user interface elements, 136 web controls compared, 140
HTML tables designing web pages with Visual Studio, 31 web site reference for, 728
HTML Tabs settings, Visual Studio, 33 HTML tag attributes, 1111 HTML tags, 31
creating custom controls, 1111 server controls, 123
HTML Toolbox tab, 38 HTML Validation settings, Visual Studio, 33 Html32TextWriter class, 1121, 1122 HtmlAnchor class, 128
HRef property, 131 HtmlButton class, 128 HtmlContainerControl class, 127 HtmlControl class, 127
events, 133 HtmlControls namespace, 126 HtmlDecode method, 111, 113 HtmlEncode method, 100, 111, 113
creating label for specific data, 1140 secure coding, 838
HtmlEncode property, BoundField, 405 HtmlForm class, 128
Controls collection, 100 DefaultButton property, 146
HtmlGenericControl class, 123, 127, 129 HtmlHead class, 103, 130
accessing head tag, 101, 102 properties, 102 web forms changes in ASP.NET 4, 71
HtmlImage class, 128 HtmlInputButton class, 128 HtmlInputCheckBox class, 129 HtmlInputControl class, 128 HtmlInputFile control class, 129
uploading files, 550 using on page with UpdatePanel, 1276
HtmlInputHidden class, 129 HtmlInputImage class, 129 HtmlInputPassword class, 129 HtmlInputRadioButton class, 129 HtmlInputReset class, 129 HtmlInputSubmit class, 129 HtmlInputText class, 129, 130 HtmlMeta class, 102, 130
HtmlSelect class, 129 repeated-value binding, 359
HtmlTable class, 129 HtmlTableCell class, 129 HtmlTableRow class, 129 HtmlTextArea class, 129 HtmlTextWriter class
AddAttribute method, 1111 AddStyleAttribute method, 1111 browsers and custom server controls,
1121–1122 creating custom controls, 1110 methods, 1111 RenderBeginTag method, 1110, 1111 RenderEndTag method, 1110, 1111 rendering custom web parts, 1346 Write method, 1110
avoiding, 1122 WriteAttribute method, 1112 WriteBeginTag method, 1111 WriteEndTag method, 1112
HtmlTextWriterAttribute enumeration, 1111 HtmlTextWriterStyle enumeration, 1111 HtmlTextWriterTag enumeration, 1111 HtmlTitle class, 130 HTTP Basic authentication, 926 HTTP context
accessing in another class, 120–121 HTTP handlers, 217–219
see also handlers asynchronous handlers, 226, 227 building Ajax-style page, 1232, 1233 configuration-free handlers, 221–222 configuring, 220–221 creating, 219–220, 222–224
for non-HTML content, 224–227 custom controls using GDI+, 1167 integrating images with other content, 466–469 launching, Visual Studio, 221 registering, 217 session state, 227 SQL cache dependencies, 504
HTTP modules, 227–228 creating custom HTTP modules, 229–231 IIS 7.x pipeline, 946 Windows authentication, 949
HTTP Modules configuration feature, 877, 878 HTTP modules pipeline, 991
configuring IIS 7.x, 944 HTTP pipeline, extending, 217–230
HTTP handlers, 217–224 for non-HTML content, 224–227
HTTP modules, 227–231
■ INDEX
1562
HTTP POST operation, 73 HTTP requests
authorization rules, 966 HttpApplication class
AuthenticateRequest event, 229 EndRequest event, 183, 184 Error event, 187 handling events from other modules, 231 shared application variables, 268
HttpApplicationState class, 106, 266 HttpBrowserCapabilities class, 106, 1123–1125
properties, 1123–1124 HttpCachePolicy class, 108, 481 HttpClientCertificate object, 106 HttpContext class
accessing context in another class, 121 accessing Session object, 227 Current property
creating web services, Silverlight, 1508 implementing provider classes, 1081
Items collection, 1011 SetSessionStateBehavior method, 233
HttpCookie object, 254 HttpCookieMode enumeration, 264 httpErrors element, web.config, 196 HttpExtensions.dll assembly, 230 HttpForbiddenHandler, 218 httpHandlers element, 217, 221 HttpModule class, 858 httpModules element, 228, 229 HttpPostedFile class
SaveAs method, 551 HttpRequest class, 106
Browser property, 1123 properties, 106 UserAgent property, 1123
HttpResponse class, 108 cross-page postbacks, 248 members bypassing control model, 109 methods, 108, 109 moving between pages, 110–111 properties, 108, 109 WriteSubstitution method, 482, 483, 484
httpRuntime element, web.config maxRequestLength attribute, 552 request validation, 1211, 1215
HttpServerUtility class, 111 HtmlEncode method, 111, 1140 UrlEncode method, 111, 247, 1060
HttpSessionState class, 106, 257 methods, 258 properties, 257–258
HttpUtility class HtmlEncode method, 838
HyperLink attribute, 1119 HyperLink control, 139, 246 HyperLink property, 1127, 1129 HyperlinkButton class, 1472 HyperLinkField column, GridView, 402 hyperlinks
BulletedList control, 151 Login control, 903
HyperLinkStyle property, 902
■ I -i switch, aspnet_regsql.exe, 891 I/O completion port feature
asynchronous pages, 513, 515 IAsyncResult class, 515
handling errors, 518, 520 querying data, 517 using caching, 521
IButtonControl interface, 146, 741 ICallbackContainer interface, 1247 ICallbackEventHandler, 1238, 1242, 1245 ICollection interface, 363 icons
DrawIcon method, 1153, 1154 ICryptoTransform interface, 1039–1040 id attribute
themes, 711 XHTML compliance, 82
ID property Control class, 125, 697 Label control, 94
IDataSource interface, 368 IDbCommand interface, 285 IDbConnection interface, 276, 278 IDbTransaction interface, 306, 310 @@IDENTITY function, 299 Identity column
application pools, IIS, 827 identity element, web.config, 959 Identity property, WindowsPrincipal, 952 identity values
handling in inserts, ObjectDataSource, 394–396
IdentityReference class, 955–957 Translate method, 955 Value property, 956
IDisposable interface, 1297 IDs in data templates
ASP.NET 4 changes in data controls, 401
■ INDEX
1563
IEnumerable(Of T) interface, LINQ, 565, 566, 573
IFormatter interface, 559 iframe element, Silverlight entry page, 1466 iframe tag, 1227 IGrouping(Of TKey, TElement) interface, 571,
572 IHttpAsyncHandler interface, 513 IHttpHandler interface
creating custom HTTP handler, 219 Integrated pipeline mode, 830 ProcessRequest method, 466
IHttpModule interface, 229 IIS (Internet Information Services)
application pools, 181, 826 application warm-up feature, 829 authentication configuration, 944 configuring, 797–799 configuring membership in IIS 7.x, 923–927
membership providers, 923–925 users, 925 using membership API with other
applications, 925–927 configuring SSL in IIS, 847–850
configuring bindings for SSL, 849 encoding information with SSL, 850
HTTP modules, 228 IIS 7.x and forms authentication, 873–879 installing, 795–797 processing requests, 830 registering HTTP handlers, 218, 219 Server Certificates feature, 847, 848 SSL binding configuration in IIS, 850 website deployment, 795, 799
copying files approach, 800 FTP deployment approach, 813, 814 web deploy approach, 805
Windows authentication, 935 configuring IIS 7.x, 944–946 IIS 7.x pipeline, 946–950
IIS 7.x authorization and roles in, 988–994 authorization with ASP.NET roles in,
991–993 configuring roles providers with, 994 managing ASP.NET roles with, 993–994 URL authorization feature, 989 using custom providers with, 1104–1105
IIS 7.x management console configuring forms authentication, 874, 876 HTTP Modules configuration feature, 877,
878
IIS 7.x pipeline HTTP modules, 946 Windows authentication, 946–950 WindowsAuthenticationModule, 946
IIS file mappings website deployment, 799
IIS management console see IIS Manager tool IIS Manager tool
application pools, 826–829 configuring application warm-up, 829–830 configuring connection strings, 892 configuring handlers, 831–833 configuring IIS, 797–799 configuring IIS 7.x, 944 creating virtual directories, 821 creating websites, 820–821 denying access to anonymous users, 950 deploying website
copying files approach, 801, 803, 804 FTP deployment approach, 815
incompatibility with .NET framework, 923 machineKey element, 191 managing ASP.NET roles with IIS 7.x, 993 managing websites, 820–830 preparing IIS for deployment by copying
files, 800 preparing IIS using web deploy, 805 Server View, 797, 798 Sites item, 798 Start Page, 797 starting and stopping application pools, 828 using custom providers with IIS 7.x, 1105
IL (Microsoft Intermediate Language), 4, 6 ildasm.exe (IL Disassembler), 7, 1042 Image control class, 139
Dispose method, 1151 embedding dynamic graphics, 1162 FromFile method, 1165 ImageUrl property, 1162 Save method, 1151, 1162 Silverlight elements, 1472 src property, JavaScript, 1225 stacked image controls, 1143
image type, input tag, 129 ImageButton control, 139, 1143
handling click events with, 149 handling events in GridView, 436
ImageClickEventArgs object, 149 ImageField column type, GridView, 403 ImageFormat namespace, 1149 ImageMap control, 139, 1143–1149
adding to form, 1144 Click event, 1145–1146
■ INDEX
1564
defining clickable regions, 1144 handling click events with, 150 HotSpotMode property, 1145 hotspots, 1144–1149
creating, 1144–1145 custom hotspots, 1146–1149 disabling hotspots, 1145 handling clicks, 1145–1146 overlapping hotspots, 1145
HotSpots collection, 1143 HotSpots property, 1144, 1145 ImageUrl property, 1144 stacked image controls, 1143
ImageMap designer, Visual Studio, 1144 images
creating HTTP handler for non-HTML content, 225
downloading asynchronously, 1203–1208 DrawImage method, 1153, 1154 dynamic, passing information to, 1164–1166 format and quality, GDI+, 1151–1153 integrating with other content, 466–469 rollover buttons, JavaScript, 1221, 1224 serving from database, 463–469 skins, 717 temporary, using placeholders as,
1203–1208 TreeView control, 785–786
Images subdirectory, 60 ImageSet property, TreeView, 786 ImageToolTip property, TreeNode, 778 ImageUrl element, Advertisement file, 174 ImageUrl property
Image control embedding dynamic graphics, 1162 single-value binding, 353
ImageMap control, 1144 MenuItem class, 787 TreeNode class, 778 TreeNodeStyle class, 782 TreeViewNode class, 785
Imaging namespace, GDI+, 1149 img tag
custom controls using GDI+, 1167 embedding dynamic graphics, 1162 HtmlImage control class, 128 Image control class, 139
Impersonate method, WindowsIdentity, 954, 960, 961
impersonation, 841, 957–962 configured impersonation, 957, 959 delegation and, 958–959 Kerberos authentication, 942
Local Security Policy management console, 957 privileges, 958 programmatic impersonation, 957, 960–963
getting tokens, 960–961 performing impersonation, 961–963
implementsInterface method, 1293 implicit data types
adding parameters with, 301 import statements
creating custom web parts, 1341 ImportCatalogPart class, 1367, 1372 Impressions element, Advertisement file, 174 In keyword, From clause, LINQ, 567 IN operator, DataView, 345 INamingContainer interface, 88, 1137 Include method, LINQ to Entities, 592 Include property, EntityDataSource, 611 IncludeStyleBlock property, Menu, 793 Indentation property, XmlTextWriter, 629 index
SelectedIndex property, 151 SelectedIndexChanged event, 152 TabIndex property, 138
Index method, MVC, 1379, 1380 configuring routing, 1386 testing incomplete application, 1381
Index view, MVC adding to model, 1401 creating, 1380–1381 modifying views, 1396
IndexOf method, Array, 440 IndexOutOfRangeException class, 287 InferXmlSchema method, DataSet, 678 Inherit value
ClientIDMode, 89 ViewStateMode, 243
inheritance configuration inheritance, 193–194 JavaScript, 1296–1297
inheritance hierarchy HTML server controls, 126 server controls, 124 web controls, 137
Inherits attribute, ASP.NET, 55 inheritsFrom method, 1293 init event, Application, 1299 Init event, Page see under Page class Init method, IHttpModule, 229 Initial Catalog value, connection string, 280 initialization
custom profile providers, 1021–1022 page framework initialization, 91 user code initialization, 92
■ INDEX
1565
initialization vector (IV) using symmetric algorithms, 1047
Initialize method FactoredProfileProvider, 1021–1022 HoverButton, 1301, 1302 OutputCacheProvider, 487, 490 ProviderBase, 1018, 1021–1022 SiteMapProvider, 765 XmlMembershipProvider, 1079, 1080 XmlRoleProvider, 1096
initializeBase method HoverButton, 1300 JavaScript, 1297
InitializeComponent method, 1478 initializeRequest event, PageRequestManager,
1299 InitializeRequestEventArgs class
Cancel property, 1299 InitialValue property, RequiredFieldValidator,
162 initParams parameter, Silverlight, 1468 inline code model, Visual Studio, 53, 55 inline frames, 1227–1228 in-memory bitmap
drawing with GDI+, 1149, 1150 in-memory XML processing, 635–648
XDocument class, 642–648 XmlDocument class, 636–639 XPathNavigator class, 639–642
inner web control exposing, user controls, 696–697
InnerHTML property HtmlContainerControl, 127 JavaScript, 1195, 1196
InnerHtml tag, 113 InnerText property
HtmlContainerControl, 127 JavaScript, 1195
InnerText tag, 113 INotesContract interface, 1356 InProc mode, sessionState element, 259 input controls
Focus method, 144 HtmlInputButton class, 128 HtmlInputCheckBox class, 129 HtmlInputControl class, 128 HtmlInputFile class, 129 HtmlInputHidden class, 129 HtmlInputImage class, 129 HtmlInputPassword class, 129 HtmlInputRadioButton class, 129 HtmlInputReset class, 129 HtmlInputSubmit class, 129
HtmlInputText class, 129, 130 postbacks and change events, 1131–1134
input tag, 72 HtmlInputControl class, 128 HtmlInputText class, 130 web control classes, 139
input validation controls see validation controls Insert action, Dynamic Data, 1437, 1438, 1439 Insert button
operations on records, DetailsView, 453 Insert command
editing FormView, 456 insert database operations, 595–599
creating partially populated entity classes, 597
inserting associated entities, 597–599 Insert method, Cache object, 492
custom cache dependencies, 509 expiration parameters, 492
Insert mode, DetailsView, 453 Insert value, Transform attribute, 808 Insert.aspx, Dynamic Data
route discovery by table, 1439 using entity templates, 1425
InsertCommand property DataAdapter, 334 SqlDataSource, 370, 379, 384
InsertCommandType property, 370 Inserted event
page life cycle with data binding, 369 SqlDataSource control, 378, 384
InsertEmployee function, 323 InsertEmployee stored procedure, 320 Inserting event
ObjectDataSource control, 394 page life cycle with data binding, 369 SqlDataSource, 377
inserting records, SqlDataSource, 384 InsertItemTemplate property
FormView, 454, 456 GridView, 433 ListView, 445
InsertMethod property, ObjectDataSource, 387 InsertVisible property, 384, 405 installation scripts, 890, 891 instance methods, 322 InstructionText property, Login, 903 InstructionTextStyle property, 902 integrated authentication, 799 integrated development environment
Visual Studio IDE, 34–41 integrated mode, IIS 7.x, 876 Integrated pipeline mode
■ INDEX
1566
application pools, IIS, 827 creating application pools, 827 extending pipeline, 830–833
configuring handlers, 831–833 processing requests, 830
integrated security, connection strings, 279 integrated web server, Visual Studio, 21 Integrated Windows authentication, 938,
940–944 Kerberos authentication, 941–944 NTLM authentication, 940–941 protocols, 940
integrity, 842 levels of security, 840
IntelliSense, Visual Studio, 47 filtering, 49–50 navigation tools using filtering, 51 Visual Studio 2010 improvements, 49–50
interfaces ADO.NET objects, 313 JavaScript, 1297–1298
intermediate language (MSIL), 4, 6 InternalName property, FileVersionInfo, 538 Internet Information Services see IIS interop assembly
using component through Bin directory, 215 interpreted languages, 4 interrupted updates, UpdatePanel, 1277–1278 Intersect method, PrincipalPermission, 974 Interval property, Timer, 1280 Into keyword, Group clause, LINQ, 571 InvalidCastException class, 287 InvalidOperationException class, 282 IP address menu, Add Web Site dialog, 820 IPostBackDataHandler interface, 1131, 1132,
1134 IPostBackEventHandler interface, 1222, 1224,
1135 IReadOnlySessionState interface, 227 IRequiresSessionState interface, 227 IS NULL operator, DataView, 345 IsAnonymous property, WindowsIdentity, 953 IsAsyncPostBack property, ScriptManager, 1286 IsAuthenticated property, HttpRequest, 107 IsAuthorized property, 1374 IsCallback property, Page, 1244 IsClientConnected property, HttpResponse,
108 IsClientScriptBlockRegistered method, 1223 IsClosed property, WebPart, 1333 IsCookieless property
HttpSessionState, 258 Session object, 265
IsCrossPagePostBack property, 251 IsDebug property, FileVersionInfo, 538 IsEnabled property, Trace, 115 IsGuest property, WindowsIdentity, 953 IsInRole method
accessing roles programmatically, 986 authorization checks in code, 972–973 merging PrincipalPermission objects, 974 RolePrincipal class, 981 WindowsPrincipal class, 952, 974
isInstanceOfType method, 1293 IsLoaded method, EntityCollection, 593 IsLocal property, HttpRequest, 107 IsLockedOut property, MembershipUser, 931 IsNavigating property, ScriptManager, 1286 IsNewSession property, HttpSessionState, 258 ISO Sortable Standard type format string, 408 isolated transactions, 303 isolation levels, transactions, 308–309 IsolationLevel enumeration, 308, 309 IsPatched property, FileVersionInfo, 538 IsPathRooted method, Path, 540 IsPostBack property, Page, 92, 105, 251
client callbacks, 1244 IsPreRelease property, FileVersionInfo, 538 IsPrivateBuild property, FileVersionInfo, 538 IsReady property, DriveInfo, 534 IsReusable property, IHttpHandler, 219 IsSecureConnection property, HttpRequest,
107 isSensitive parameter, Personalizable attribute,
1369 IsShared property, WebPart, 1333 IsSpecialBuild property, FileVersionInfo, 538 IsStandalone property, WebPart, 1333 IsStartupScriptRegistered method, JavaScript,
1223 IsStatic property, WebPart, 1333 IsSystem property, WindowsIdentity, 953 IsUserInRole method
Roles class, 985 RoleService, 1268 XmlRoleProvider, 1100
IsValid method, MVC, 1408 IsValid property
BaseValidator, 161 CustomValidator, 167 ModelState, 1404 Page, 92, 172, 252, 253, 867
IsValidRequestString method, 1214, 1215 Italic property, FontInfo, 143 Item property, DataReader, 289 item removed callback, 502–504
■ INDEX
1567
Items collection, HttpContext, 1011 Items property
ListControl, 151 Menu class, 787
ItemSeparatorTemplate property, ListView, 444 ItemStyle property, GridView, 405 ItemTemplate property
FormView, 454, 456 GridView, 430, 432, 433, 441, 444 ListView, 444, 447, 449
ItemUpdated event, DetailsView, 470, 472 iterator class, 568 iterator object, LINQ, 565, 566, 568 IUSR account, 959 IWebEditable interface, 1353, 1354 IWebPart interface, 1335–1338
properties, 1335, 1336 IXPathNavigable interface, 668
■J JavaApplets property, HttpBrowserCapabilities,
1124 JavaScript, 1189–1209
adding attributes declaratively, 1193 Ajax, 1229–1236 alert function, 1192 client-side events, 1191–1193 client-side libraries, AJAX, 1288 confirmSubmit function, 1208 creating page processor, 1199–1203 custom controls, 1215–1225 debugging, 1196–1197 doPostBack function, 1134, 1135 downloading images asynchronously,
1203–1208 Dynamic HTML, 1190 embedding, 1189 event attributes, 1189, 1192, 1193 extended types in AJAX, 1294 functions and methods, 1190 HTML DOM, 1190–1191 inadvertently executing block of, 113 limitation of HttpBrowserCapabilities, 1125 manipulating HTML elements, 1195–1196 object-oriented programming in, 1289–1298
base types, 1294–1295 closures, 1290–1291 inheritance, 1296–1297 interfaces, 1297–1298 namespaces, 1295–1296 prototypes, 1292 registering classes with AJAX, 1293–1294
OnClientClick property, 1193 pop-up windows, 1216–1221 prototype property, 1292 Render method, 1218 rollover buttons, 1221–1225 script blocks, 1189, 1193–1195
rendering, 1208–1209 script injection attacks, 1210–1215 testing for support in browser, 1230 UI Framework, 1289 writing client-side scripts, Ajax, 1240, 1241
JavaScript classes, 1288 JavaScript extensions, 1288 Javascript method, MVC, 1410 JavaScript language extensions
ASP.NET AJAX, 1252 JavaScript property, HttpBrowserCapabilities, 1124 JavaScript proxy, 1260, 1264 JavaScriptResult class, MVC, 1410 JIT (just-in-time) compilation, 4 JOIN queries
using DataRelation object or, 339 JPEG format
image format and quality, GDI+, 1151 .js files
debugging JavaScript, 1197 src attribute, script blocks, 1195
JSON (JavaScript Object Notation) web services, AJAX, 1255
JSON data, returning action results, MVC, 1410–1411
Json method, MVC, 1410 JsonDetails method, MVC, 1411 JsonRequestBehavior enumeration, MVC, 1411 JsonResult class, MVC, 1410 just-in-time compilation (JIT), 4
■K KDC (key distribution center), 942 Kerberos authentication, 940, 941–944
authentication tickets, 942 credentials, 942 delegation, 942 impersonation, 942 KDC, 942 master key, 942 session keys, 942 session tickets, 942 ST (session ticket), 942 TGT (ticket-granting ticket), 942 tickets, 942 Windows authentication, 946
■ INDEX
1568
key exchange symmetric encryption algorithms, 1037
key frame animation, Silverlight, 1495 Key property
DictionaryStructure class, 360 IGrouping interface, 572 SymmetricAlgorithm class, 1045
keyboard events, Silverlight, 1479 keys
AccessKey property, 138 asymmetric key pair, 845 certificates, SSL, 845 machineKey element, 189–191 private keys, SSL, 845, 846 public keys, SSL, 845, 846 secret keys, 846 session keys, 846 symmetric key, 846, 847
Keyword element, Advertisement file, 174 KeywordFilter property, AdRotator, 174 keywords metatag, 102 Keywords property, HtmlHead, 102 keywords, LINQ, 564, 565
■L Label control, 74, 139
AssociatedControlID property, 146 creating label for specific data, 1139 CssStyle property, 708 handling special characters, 113
LabelStyle property, Login, 902 lambda expressions, VB, 574, 576 Language Integrated Query see LINQ language mixing
projectless development, 59 Language property, FileVersionInfo, 538 LastAccessTime property, 531 LastActivityDate property
Profile class, 1005 ProfileCommon, 1013 XmlMembershipProvider, 1089, 1093, 1095
last-in-wins concurrency, 327, 328 LastLoginDate property, 1089 LastPageText property, PagerSettings, 429 LastUpdatedDate property, 1005, 1013 LastWriteTime property, 531, 542 layout containers, Silverlight, 1481–1494
Canvas, 1482–1487 Grid, 1488–1494 nesting, 1491–1492
LayoutEditorPart class, 1350 LayoutTemplate class, 907
LayoutTemplate property ListView, 401, 445, 446, 447, 449, 450 Wizard, 749, 751
lazy initialization, 181, 269 lazy loading, LINQ to Entities, 591 LeafNodeStyle property, TreeView, 784 leeching, 225, 226 Left property, Canvas, 1482, 1487 legacy rendering, 85 Legacy value, xhtmlConformance element, 85 LegalCopyright property, 538 LegalTrademarks property, 538 Length property, FileInfo, 532, 541 less-than symbol (<)
< entity, HTML, 112 LevelStyles collection, TreeView, 784 libraries, client
ASP.NET AJAX, 1288–1303 JavaScript, 1288
lifetime application lifetime, 181 connection pooling, 284 state management options compared, 234,
235 LIKE operator, DataView, 345 Line class, Silverlight, 1473 linear interpolation, Silverlight, 1495 LinearGradientBrush class, 1160, 1171 LineCap properties, Pens, 1158 LineJoin property, Pens, 1158 lines
AddLine method, 1157 DrawLine method, 1153 ReadAllLines method, 529 WriteAllLines method, 529
link element applying stylesheet rules, 708 using CSS in themes, 718
LinkButton control, 139 adding events to user control, 694 client IDs in GridView templates, 444 exposing inner web control, 696 handling events, user controls, 686
LinkClicked event, 694 LinkClickedEventHandler class, 694, 695 LinkControl class, 1113, 1115 links
absolute links, 265 relative links, 264
LinkTable control, 690, 692, 693 LinkTableEventArgs class, 693 LinkTableNoEvent control, 690, 691, 692, 693 LinkWebControl class, 1116, 1117, 1127, 1129
■ INDEX
1569
LINQ (Language Integrated Query), 14, 563–577 binding chart to, 1186–1187 database operations, 595–605
concurrency, 600–605 deferred execution, 565 expressions, 566, 567–577 IEnumerable(Of T) interface, 565, 566, 573 keywords, 564, 565 List(Of T) class, 565, 566 Parallel LINQ, 563 replacing For Each block, 564 searching XML content, 653–655 SelectIterator(Of T) class, 565 System.Xml.Linq.dll assembly, 43 UnionIterator(Of T) class, 565 WhereIterator(Of T) class, 565, 566
LINQ expressions, 566, 567–577 aggregation, 573–574 And operator, Where clause, 570 AndAlso operator, Where clause, 570 AsEnumerable method, 578 Average method, 574 By keyword, Group clause, 571 calling methods inline, 570 conditional expressions, 570 Count method, 573 extension methods, 573, 575–576 Field(Of T) method, 578 filtering, 569–570 From clause, 567 Group clause, 571 grouping, 571–573 In keyword, From clause, 567 Into keyword, Group clause, 571 iterator object, 565, 566, 568 lambda expressions, 574, 576 Max method, 574 Min method, 574 multipart expressions, 577 Or operator, Where clause, 570 Order By operator, 570 OrElse operator, Where clause, 570 projections, 567–569 relational operators, 570 Select clause, 567 Select method, 575, 576 sorting, 570 SQL query similarity to, 567 Where clause, 569, 570
LINQ to DataSet, 14, 563, 577–580 extension methods, 654 filtering DataSet, 579
null values, 580 typed DataSets, 580
LINQ to Entities, 14, 563, 581–595 ASP.NET Dynamic Data, 18 building data access component, 318 data access without ADO.NET, 273 entity classes, 584–585 Entity Framework data model, 581
data model classes, 582–585 generating data model, 582
entity relationships, 586–587 EntityDataSource control, 607–614 executing expressions, 566 ObjectContext class, 583–584 one-to-many relationships, 586 one-to-one relationships, 587 QueryExtender control, 615–619 querying stored procedures, 587–589 reasons for using, 581
LINQ to Entities queries, 589–595 compiled queries, 594–595 eager loading feature, 592 entity relationships, 586–587 explicit loading, 593–594 filtering too late, 590–591 Include method, 592 lazy loading feature, 591 ObjectSet, 584 stored procedures, 587–589 viewing SQL queries, 589
LINQ to Objects, 14, 563–577 executing expressions, 566 retrieving data, speed of, 566
LINQ to SQL, 14, 581 ASP.NET Dynamic Data, 18 creating Dynamic Data website, 1416 creating model, MVC application, 1378 extension methods, 654
LINQ to XML, 14, 563 attributes, 642 creating XML with XDocument, 642 distinguishing elements and text inside, 645 extension methods, 654 extracting information with, 655 transforming XML content, 663–665 XDocument class, 635, 642–648
LinqDataSource control, 608 List action, Dynamic Data, 1433
constraining routes, 1436, 1437 route discovery by table, 1439 switching to single-page editing, 1437, 1438 using different templates for tables, 1438
■ INDEX
1570
list controls, 150–157 BulletedList control, 151, 155–157 CheckBoxList control, 151 data binding with DataReader, 365 data properties, 359 DataBind method, 366 DataSource property, 359, 366 DataSourceID property, 359 DataTextField property, 359 DataTextFormatString property, 359 DataValueField property, 359 DropDownList control, 151 ListBox control, 151 RadioButtonList control, 151 repeated-value binding, 359, 361 selectable list controls, 152–155 validating, 158
List(Of T) class, LINQ, 565, 566 List.aspx page, Dynamic Data, 1421
constraining routes, 1436 creating custom page template, 1424 customizing websites with templates, 1422 route discovery by table, 1439 using different templates for tables, 1439,
1440, 1441 ListBox control class, 151
DataSourceID property, 371 DataTextField property, 372 editing/deleting/inserting records, 379 repeated-value binding, 359 selectable list controls, 152 Silverlight elements, 1472
ListBoxFor method, MVC, 1396 ListControl class, 151
DataBind method, 366 DataSource property, 366 properties, 151 SelectedIndexChanged event, 152
ListDetails.asax template, Dynamic Data, 1421 route discovery by table, 1439 switching to single-page editing, 1437, 1438 using different templates for tables, 1441
ListItem class Enabled property, 155 Selected property, 154
ListSearchExtender control, AJAX, 1310 ListView control, 444–451
grouping, 448–450 GroupItemCount property, 448 paging, 450–451
ListView templates, 444–445 AlternatingItemTemplate property, 444 drawback, 447
EditItemTemplate property, 445 EmptyDataTemplate property, 445 EmptyItemTemplate property, 445, 450 GroupSeparatorTemplate property, 445 GroupTemplate property, 445, 449 InsertItemTemplate property, 445 ItemSeparatorTemplate property, 444 ItemTemplate property, 444, 449 LayoutTemplate property, 445, 449 SelectedItemTemplate property, 445
Literal control, 355 LiteralControl objects, 99 load balancing, 800 load event, Application, 1298 Load event, Page see under Page class Load method
DataTable, 522 EntityCollection class, 593 ProfileService, 1271 RoleService, 1268, 1269 XmlDocument, 636, 644
LoadControl method, 698, 702, 1364, 1366 LoadControlState method, 1130, 1131 LoadPostData method, 1131, 1132, 1133 LoadStore method, 1074 LoadViewState method, 1129 LoadXml method, XmlDocument, 637 Local IIS type, Choose Location dialog, 26 local resources
App_LocalResources directory, 183 Local Security Policy management console, 957 local themes, 711 LocalMachine flag, 1033, 1034, 1043 localOnly attribute, web.config, 118, 119 Locals window, Visual Studio, 67–68 LocalSqlServer connection string, 199 location
creating projectless website, 26–27 location element, web.config, 194–195
controlling file access, 970 Location option, breakpoints, 68 Location property, OrderService, 208 Locator element, web.config, 807 Lock method
application state, 267 FileStream class, 553
Lock statement, VB, 269 locking behavior
isolation levels, 309 locking file access objects, 556–557 locking settings, machine.config, 195 locks, 308 LoggedIn event, Login, 908, 909
■ INDEX
1571
LoggedInTemplate property, LoginView, 983 logging
creating custom login page, 868 Trace object, 114
LoggingIn event, Login, 908 Login control, 899–910
anonymous access to stylesheets, 901 Authenticate event, 899, 908, 909, 910 CSS classes customizing appearance, 900 CssClass property, 900, 902 customization properties, 903 encrypting sensitive data, 1055 events, 907, 908, 909 forms authentication, 855, 856 hyperlinks, 903 LoggedIn event, 908, 909 LoggingIn event, 908 LoginError event, 908, 909 order of events, 909 programming, 907–910 properties, 905 properties changing appearance of, 900 security controls, membership API, 898 style properties, 902 styles supported by, 902 templates, 905–907
special controls for Login template, 907 using custom template for, 905 validating users on login, 1088–1091
login controls, 124 login forms
controlling appearance of, 855 Login ID, Login template, 907 login interface
creating, forms authentication, 856 login method, AuthenticationService, 1266 login pages
anonymous access to stylesheets used by, 901
creating custom login page, 864–870 cookieless forms authentication, 870 hashing passwords in web.config, 869–
870 logging out, 868
membership API, 881 Login Toolbox tab, 37 LoginButtonImageUrl property, 904 LoginButtonStyle property, 902 LoginButtonText property, 904 LoginButtonType property, 904 LoginCancelEventArgs class
Cancel property, 914 LoginError event, 908, 909
LoginImageUrl property, 911 LoginStatus control, 910–911
properties, 911 security controls, 898
LoginText property, 911 loginUrl attribute, web.config, 861 LoginView control, 911–912
encrypting sensitive data in databases, 1055 security controls, 898 using with roles, 983 ViewChanged event, 912 ViewChanging event, 912
LogonUser function programmatic impersonation, 960, 961
logout method, AuthenticationService, 1266 LogoutAction property, 911 LogoutImageUrl property, 911 LogoutPageUrl property, 911 LogoutText property, 911 Long Date type format string, 408 lookup tables
editing field using, 461–463
■M machine.config file, 189–191
authorization rules, 967 configuration inheritance, 193 cryptographySettings section, 1047 DbProviderFactories class, 312 DbProviders section, 312 extending configuration file structure, 204 forms authentication, 859 implementing provider classes, 1088 locking settings, 195 machineKey element, 189–191 persistence, 202 web.config overriding settings, 191 website deployment, 800
machine.config.comments file, 189 hashing or encrypting data, 245
machineKey element, 189–191 AutoGenerate,IsolateApps value, 189 decryptionKey attribute, 190 hashing or encrypting data, 245 IIS Manager tool, 191 validationKey attribute, 190
MachineName property, HttpServerUtility, 111 Macro Explorer window, Visual Studio, 35 MailDefinition element
ChangePassword control, 917 PasswordRecovery control, 913
■ INDEX
1572
MailMessageEventArgs class Message property, 914
Main method MSIL code for, 6
MainPage class XAML code-behind, 1478
MainPage.xaml file creating Silverlight project, 1470 XAML code-behind, 1478
MainPage.xaml.vb file creating Silverlight project, 1470 handling events, Silverlight, 1479 XAML code-behind, 1478
MajorVersion property, HttpBrowserCapabilities, 1123
makecert.exe command, 1034 Manage Styles window, Visual Studio, 35
applying stylesheet rules, 709 managed applications, 6 managed code, 8 Managed Pipeline Mode column
application pools, IIS, 827 management console, IIS see IIS Manager tool Management Service, 805 map tag, ImageMap control, 139 MapPageRoute method, RouteCollection, 775 MapPath method, HttpServerUtility, 111, 112 mapping, URL, 774–775 MapRoute method, Global.asax file, 1386 maps
ImageMap control, 1143–1149 marker files
SQL cache dependencies, 504 MarkupName property, 1148 MaskedEditExtender control, AJAX, 1311 master catalog, database server, 280 Master directive, 722 master key
Kerberos authentication, 942 NTLM authentication, 940
master pages, 705, 721–736 applying through configuration file, 731 ASP.NET 2.0, 13 ASP.NET applications, 180 content placeholders, 722 ContentPlaceHolder, 722–724 creating content pages, 724–726 creating, 722–724 default content, 727 dynamically setting, 733 formatting, 726 interacting with MasterPage class, 732–733 nesting, 734–736
page templating, 721 relative paths, 730–731 standardizing website layout, 721 with tables and CSS layout, 727–730
Master property, Page class, 732 master-details form
selecting rows, GridView, 415–417 MasterPage class, 732–733
FindControl method, 733 MasterPageFile attribute
Page directive, 724, 725, 734, 735 web.config file, 731
MasterPageFile property, 733 MasterType directive, 733 match-all concurrency, 327, 328 MatrixTransform class, Silverlight, 1504 MAX function
filtering with relationships, 348 Max method, LINQ, 574 Max Pool Size setting, connection pooling, 283 maxCachedResults property, roleManager, 979 MaxDataBindDepth property, TreeView, 777 MaximumRowsParameterName property, 425,
427 MaximumValue property, RangeValidator, 162 maxInvalidPasswordAttempts property, 895 MaxLength property, TextBox, 296 maxPageStateFieldLength attribute
view state chunking, 81 maxRequestLength attribute, 552 mc namespace prefix, Silverlight, 1475 MD5 (Message Digest 5) algorithm, 191 MD5 value, 869 Me keyword
DataBind command, 354 programmatically creating server controls, 132
measurements Unit structure, web controls, 141
MeasureString method, Graphics, 1170 media, Silverlight, 1460 MediaElement class, Silverlight, 1473 member list, Visual Studio, 46–47 membership and roles framework, 1068 membership API, 881–897
architecture illustrated, 882 authenticating users, 884, 897 ChangePassword control, 899, 917–918 configuring connection string, 884, 892–893 configuring forms authentication, 884,
885–886 configuring membership in IIS 7.x, 923–927
membership providers, 923–925 users, 925
■ INDEX
1573
configuring membership providers, 884, 892–896
CreateUserWizard control, 899, 918–923 creating data store, 884 creating database, 886–892
database scripts for ASP.NET services, 890–892
file-based SQL Server store, 892 creating users, 884, 896–897, 931–932 deleting users, 932 forms authentication, 856, 857, 881 implementing custom providers, 1067 installation scripts, 890 InstallMembership.sql script, 890 Login control, 898, 899–910 LoginStatus control, 898, 910–911 LoginView control, 898, 911–912 Membership class, 927–932 PasswordRecovery control, 898, 912–917 purpose of, 883 retrieving users from membership store,
928–930 security controls, 898–923 updating users in membership store, 931 using, 884–897 using Basic authentication with, 926 using with other applications, 925–927 validating users, 932
membership API framework, 856, 857 Membership class, 882, 883, 927–932
ChangePassword method, 931, 1089, 1090 CreateUser method, 931, 932 debugging using WAT, 1103 DeleteUser method, 932 GetAllUsers method, 930 GetPassword method, 931 GetUser method, 928 implementing provider classes, 1093, 1095 retrieving users from membership store,
928–930 UpdateUser method, 928, 931 updating users in membership store, 931 ValidateUser method, 899, 900, 932, 1088 validating users on login, 1089, 1090
membership providers see also custom membership and roles
providers configuring, 884, 892–896
in IIS 7.x, 923–925 membership roles see roles membership section, web.config, 196, 893 Membership Service, 1054 MembershipCollection class, 930
MembershipCreateStatus class, 932 MembershipCreateUserException class, 883 MembershipProvider class, 883, 1069, 1079 MembershipProviderCollection class, 883 MembershipUser class, 883, 928
designing custom providers, 1070 encrypting sensitive data in databases,
1054, 1057, 1058 implementing provider classes, 1085, 1086 IsLockedOut property, 931 ProviderUserKey property, 1058, 1069 UnlockUser method, 931
MembershipUserCollection class, 883, 930, 1094
Memcached, 486 memory management, CLR, 8 memory-based caching, 486 MemoryStream class
compression, 557 using PNG format, 1163
Menu class DisappearAfter property, 790 DynamicXyzStyle properties, 790 IncludeStyleBlock property, 793 Items property, 787 Orientation property, 789 StaticDisplayLevels property, 790 StaticSubMenuIndent property, 790 StaticXyzStyle properties, 790
Menu control, 786 ASP.NET 4, 793 dynamic items, 789 DynamicMenuItemTemplate, 791 navigation changes in ASP.NET 4, 737 static items, 789 StaticMenuItemTemplate, 791 styles, 789–790 templates, 791–793 TreeView compared, 789
menuBar attribute, pop-up windows, 1216 MenuItem class, 786
ChildItems collection, 787 DataItem property, 791 GetDescriptionFromTitle method, 791, 792 properties, 787 Text property, 787, 791
MenuItemDataBound event, 763 Merge method, DataSet, 334 message
get_message method, 1262 Message property
Exception class, 297 MailMessageEventArgs class, 914
■ INDEX
1574
message queues custom cache dependency using, 509–512
MessageQueueCacheDependency class, 509, 510
metacharacters for matching single characters, 164 for matching types of characters, 165
metadata, 8 classes, 1442 customizing Dynamic Data websites with,
1442–1450 changing display names, 1443–1445 changing visibility, 1446–1448 customizing field formatting, 1448–1449 customizing validation for data fields,
1451–1455 using custom field template, 1450
HtmlMeta class, 130 metadata tags, 102 MetaDataType attribute, 1406, 1443 metalanguages
XML, 622 method filters, MVC, 1387 method parameters
selecting records, ObjectDataSource, 390–391
method signatures nonstandard, ObjectDataSource, 393–394
MethodExpression filter, QueryExtender, 618–619
methods global.asax application file, 183 instance methods, 322 JavaScript, 1190 shared methods, 322 web control classes, 139
Microsoft AJAX Library, 1252 Microsoft Expression Web
configuring hotspots in, 1144 Microsoft Intermediate Language (MSIL), 4, 6 Microsoft Management Console, 1034 Microsoft Messaging Queuing (MSMQ), 509,
510 Microsoft MSN
portal pages, 1318 MicrosoftAjax.js file, 1252 MigrateAnonymous event, ProfileModule, 1016 migration
project-based development, 60 Visual Studio websites, 61–63
migration to ASP.NET HTML server controls, 136
Min method, LINQ, 574
Min Pool Size setting, connection pooling, 283 Minimize verb, 1364 MinimumPrefixLength property,
AutoCompleteExtender, 1307 MinimumValue property, RangeValidator, 162 MinorVersion property,
HttpBrowserCapabilities, 1123 minRequiredNonalphanumericCharacters
property, 895 minRequiredPasswordLength property, 895 MinRequireNonAlphanumericCharacters
property, 1086 minRuntimeVersion parameter, Silverlight, 1468 Miscellaneous settings, HTML, 33 ModalPopupExtender control, AJAX, 1311 mode attribute
sessionState element, 259–263 Custom setting, 263 default option, 259 InProc setting, 259 Off setting, 259 SQLServer setting, 261–263 StateServer setting, 260–261
xhtmlConformance element, 85 Mode property
HttpSessionState, 258 PagerSettings, 429
Model property, DynamicDataRoute, 1433 Model View Controller see MVC Models folder, MVC
adding to model, 1401 adding validation annotations, 1406 creating model, 1379 creating MVC application, 1378
models for coding web pages, Visual Studio, 52 models, MVC, 1377
adding to model, 1398–1403 creating model, 1378
ModelState class validating data, 1404
Model-View-Controller see MVC modified URLs
tracking session ID, 257 Modify Style dialog box, Visual Studio, 31 modules
handling events from, 231 HTTP modules, 227–231
Mono project, 7 Month and Day type format string, 408 mostRecent attribute, web.config, 119 mouse events, Silverlight, 1479
MouseLeave, 1506 MouseLeftButtonDown, 1500
■ INDEX
1575
MouseMove, 1487 MouseUp, 1487
Move method Directory class, 528 File class, 529
MoveTo method, DirectoryInfo, 531 MoveToContent method, XmlTextReader, 633,
634 MoveToFirstAttribute method, XPathNavigator
class, 641 MoveToFirstChild method, 641 MoveToNext method, 639 MoveToNextAttribute method, 633, 641 mscorlib.dll assembly, 43
Silverlight, 1481 MSDN Help library reference, 4 MSDomVersion property,
HttpBrowserCapabilities, 1124 MSIL (Microsoft Intermediate Language), 4, 6 MSMQ (Microsoft Messaging Queuing), 509,
510 MSN
portal pages, 1318 MultiHandleSliderExtender control, AJAX, 1311 multilanguage development
Visual Studio, 22 multilanguage nature of ASP.NET, 6–7 multipart expressions, LINQ, 577 MultiScaleImage class, Silverlight, 1473 multitargeting, Visual Studio, 24 multithreading, CLR, 9 MultiView control, 173, 737, 738–742
ActiveViewIndex property, 740 Add method, 739 AddAt method, 739 command names for, 741 NextViewCommandName, 741 performance, 741 PreviousViewCommandName, 741 smarts, 741 SwitchViewByIDCommandName, 741 SwitchViewByIndexCommandName, 741 Visual Studio, 739
MultiView tag, 738 MutuallyExclusiveCheckBoxExtender control,
AJAX, 1311 MVC (Model-View-Controller), 18, 1377
action results, 1409–1412 adding to model, 1398–1403 adding validation annotations, 1406–1408 adding view data, 1396–1397 calling another controller method, 1411–1412 customizing views, 1393–1397
HTML helper methods, 1396 modifying views, 1394–1396 returning JSON data, 1410–1411 validating data, 1403–1408 web forms compared, 1377
MVC application adding authentication, 1389–1390 adding error handling, 1387–1389 adding support for foreign key constraints,
1393 configuring routing, 1385–1386 consolidating data store access, 1390–1393 creating, 1378–1385 creating controller, 1379–1380, 1382–1385 creating index view, 1380–1381 creating model, 1378 creating views, 1382–1385 extending, 1385–1393 modifying Site.Master file, 1385 testing incomplete MVC application, 1381
MySQL SQL injection attacks, 296
■N name attribute
ClientIDMode property and, 90 forms tag, web.config, 861 properties tag, web.config, 1003 XHTML compliance, 82
Name column application pools, IIS, 827
Name property DirectoryInfo, 531, 542 DriveInfo, 534 FileInfo, 531, 1166 FontInfo, 143, 144 ProviderBase, 1018 SqlMembershipProvider, 894 SqlRoleProvider, 979
name/value pairs, 73 view state, 78
Names property, FontInfo, 143, 144 namespace prefixes, XML, 626, 632 namespaces
ADO.NET, 277–278 cryptography namespace, 1032–1035 GDI+, 1149 JavaScript, 1295–1296 .NET framework, 3 Silverlight, 1475 XDocument, 646 XML, 624–626
■ INDEX
1576
NameValueCollection class, 1079 naming containers, 88 native authentication module, 947 Navigate event, ScriptManager, 1286, 1287 Navigate To window, Visual Studio, 51 NavigateUrl element, Advertisement file, 174 NavigateUrl property
data binding, 352 HotSpot, 1145 Hyperlink, 353 MenuItem, 787 TreeNode, 777, 778
navigation breadcrumb navigation, 755–757 changes in ASP.NET 4, 737 frame navigation, 1225–1227 managing browser history, AJAX, 1284–1288 Menu control, 786–793 programmatic navigation, 761 site map objects, 761–762 site maps, 751–773 TreeNode class, 777–779 TreeView control, 776–786 URL mapping, 774–775 URL routing, 775–776 WizardStep class, 743 XPathNavigator class, 639–642
navigation controls, 124 Menu control, 786–793 rich navigational controls, 737 SiteMapPath control, 755–757 TreeView control, 776–786 Wizard control, 742
navigation framework, 13 navigation mode, TreeNode, 777 navigation properties
entity classes, 584, 597 entity relationships, 586 LINQ to Entities, 584, 586, 589, 591 one-to-many relationships, 586 one-to-one relationships, 587
Navigation Toolbox tab, 37 navigation tools
Visual Studio 2010 improvements, 50–51 NavigationButtonStyle property, 748 NavigationStyle property, Wizard, 748 nested elements
well-formed XML, 624 XDocument class, 645
nested grids XML data binding, 671–672
nesting master pages, 734–736
.NET compilation, 4 ildasm.exe file, 7 JIT compilation, 4 multitargeting, 24
.NET components, 210–217 App_Code directory, 213–214 Bin directory, 214–217 creating components, 211–212
.NET framework ASP.NET integration with, 3–4 class library, 3 class library reference, 4 CLR and .NET framework, 9 cryptography classes, 1035–1041
abstract encryption classes, 1039 asymmetric encryption algorithms,
1038, 1050–1053 CryptoStream class, 1040–1041 ICryptoTransform interface, 1039–1040 symmetric encryption algorithms,
1037–1038, 1043–1050 SymmetricEncryptionUtility class,
1048–1050 cryptography namespace, 1032–1035 data providers, ADO.NET, 275 data source controls, 368 file system classes, 527–534 gacutil.exe utility, 799 incompatibility with IIS Manager, 923 managed code, 8 namespaces, 3 server controls, 123 stream classes, 546 types, 3
.NET Framework Version column application pools, IIS, 827
.NET nullable values DataReader class, 290 passing null value to stored procedure, 302
.NET SDK, 7
.NET tab, Add Reference dialog, 215 network traffic
intercepting, forms authentication, 857 New command
editing FormView, 456 New Project dialog box, 60, 1109 New Web Site dialog box, 23 newline
metacharacter matching, 164 NextButtonClick event, Wizard, 746 NextPageText property, PagerSettings, 429 NextPrevious mode, PagerSettings, 429
■ INDEX
1577
NextPreviousFirstLast mode, PagerSettings, 429 NextResult method, DataReader, 287, 291 NextSibling property, SiteMapNode, 762 NextViewCommandName field
MultiView control, 741 NoBot control, AJAX, 1313 NodeIndent property, TreeView, 782 nodes
adding custom site map information, 763 applying styles to node levels, 784–785 applying styles to node types, 784 attributes, selecting, 652 child node, 651 ChildNodes property, 636 current node, indicating, 652 descendant node, 651 parent node, indicating, 652 security trimming, 773 showing portion of site map, 757–761
skipping root node, 758 starting from current node, 758–759 starting from specific node, 759–761
TreeNode class, 777–779 populating nodes on demand, 780–782
TreeView, 784–785 XPath, 652
Nodes collection, XmlDocument, 666 Nodes method, XElement, 645 NodeSpacing property, TreeNodeStyle, 782 NodeStyle property
SiteMapPath, 757 TreeView, 784
NodeTemplate property, SiteMapPath, 757 NodeType property
XmlNode, 638 XPathNavigator, 641
NoExpandImageUrl property, TreeView, 782, 785
nonbreaking spaces entity, HTML, 112 replace spaces with, 113
nonce value Digest authentication, 939 NTLM authentication, 940
nonhierarchical binding, XML, 666–668 nonrepeatable reads, databases, 309
isolation level locking behavior, 310 NonSerialized attribute, 239, 559 nonstandard method signatures
ObjectDataSource control, 393–394 Normal value, FileAttributes, 535 Northwind database
building data access component, 318
NoSuchRecordError view error handling, MVC, 1388
NoSuchRecordException class, 1388 NOT operator, DataView, 345 NotContentIndexed value, FileAttributes, 535 @Notes parameter
editing with GridView template, 438 Notes property
creating consumer web parts, 1359 notifications
cache notifications, 505–506 enabling notifications, 506 SQL cache notifications, 504–505
NotifyDependencyChanged method, 508, 509, 510
notifyScriptLoaded method, 1302 NotImplementedException class, 1018, 1297 NotSupportedException class, 499 Now property, DateTime, 873 NTAccount class, 955, 956 NTFS format, Windows, 972 NTLM (NT LAN Manager) authentication, 940–
941 Windows authentication, 946
null values databases, 290 DataReader class, 290 DBNull.Value constant, 290 LINQ to DataSet, 580 passing to stored procedure, 302
NullDisplayText property, 405 Number type, AJAX, 1294 numeric format strings, 407 Numeric mode, PagerSettings, 429 NumericFirstLast mode, PagerSettings, 429 NumericUpDownExtender control, AJAX, 1311
■O obfuscators
Dotfuscator, 7 object element, Silverlight, 1465, 1466, 1467–1468 Object Relational Designer window, 1416 object tags
script injection attacks, 1210 Object type, AJAX, 1294 ObjectContext class, 583–584
compiled queries, 595 delete database operations, 599 displaying data, 607 editing data, 613 entity relationships, 586 EntityDataSource, 607, 613
■ INDEX
1578
explicit loading, 593 handling concurrency conflicts, 601, 602 insert database operations, 595, 596 inserting associated entities, 597, 598, 599 querying stored procedures, 587 Refresh method, 602 update database operations, 599
ObjectCreating event, 388, 389 ObjectDataSource control, 273, 368, 369,
385–396 see also data source controls adding items to data-bound list, 397–399,
400 binding chart to object dataSource,
1181–1183 caching with, 496, 499 custom pagination with, 425–428
counting records, 426 paged selection method, 427–428 stored procedure to get paged records,
426–427 DataObjectTypeName property, 393 DeleteMethod property, 387 Dispose method, 389 editing with GridView template, 438 EnablePaging property, 425 handling identity values in inserts, 394–396 identifying data classes with attributes, 396 InsertMethod property, 387 MaximumRowsParameterName property,
425, 427 nonstandard method signatures, 393–394 ObjectCreating event, 388, 389 ObjectDisposing event, 389 pagination, 423 paging GridView, 425–428 SelectCountMethod property, 425, 426 Selecting event, 391 selecting records, 386–388
using method parameters, 390–391 using parameterized constructor,
388–389 SelectMethod property, 387 sorting GridView with, 419–421 SortParameterName property, 420 StartRowIndexParameterName property,
425, 427 TypeName property, 387 UpdateMethod property, 387, 392 Updating event, 394 updating records, 392–393
updating with data object, 393–396 using DataSet in data access class, 341
ObjectDataSourceEventArgs class, 389 ObjectDataSourceSelectingEventArgs class, 391 ObjectDisposing event, 389 object-oriented programming see OOP ObjectQuery class, 589 objects
Application object, 106 binding chart to object datasource,
1181–1183 Cache object, 106 custom objects, user controls, 690–692 LINQ to Objects, 563–577 Request object, 106–107 Response object, 108–111 Server object, 111–113 Session object, 106 storing in view state, 239–241 Trace object, 114–120 User object, 114
ObjectSet class LINQ to Entities query, 584, 586 ObjectContext properties, 583
Odbc namespace, 278 ODBC provider, 275, 276 OdbcCommand class see Command class OdbcConnection class see Connection class OdbcDataAdapter class see DataAdapter class OdbcDataReader class see DataReader class OdbcException class, 282 ODP.NET (Oracle Data Provider for .NET), 275 Off setting
mode attribute, sessionState element, 259 Offline value, FileAttributes, 535 OldValuesParameterFormatString property,
381 OLE DB provider, 275, 276
connection strings, 279 parameterized commands, 297
OleDb namespace, 277 OledbCommand class see Command class OledbConnection class see Connection class OledbDataAdapter class see DataAdapter class OledbDataReader class see DataReader class OleDbException class, 282 OleDbTransaction class, 306 On prefix
adding events to user control, 695 onabort event, JavaScript, 1191 onblur event, JavaScript, 1191 onchange event attribute, AJAX, 1261 onchange event, JavaScript, 77, 1191, 1192 OnChange event, SqlDependency, 507 OnClick attribute, Button, 95
■ INDEX
1579
onclick event, JavaScript, 77, 1191, 1223 OnClientClick property, 1193 OnEndRequest event, 184 onerror event, JavaScript, 1191, 1204 OnError function, AJAX, 1261, 1262 onError parameter, Silverlight, 1467 one-to-many relationships, 586 one-to-one relationships, 587 one-way encryption algorithms, 1036 onfocus event, JavaScript, 1191 OnInit method
ControlAdapter class, 1126 creating custom web parts, 1339, 1343 creating web control, 1117 using control state, 1130
onkeydown event, JavaScript, 1191 onkeyup event, JavaScript, 1191
building Ajax-style page, 1234 onload event, JavaScript, 1191
building Ajax-style page, 1234 creating JavaScript page processor, 1199,
1200 downloading images asynchronously, 1204
OnLoad method creating custom web parts, 1339, 1343
onLoad parameter, Silverlight, 1468 onLoginCompleted function, AJAX, 1266 onLoginFailed function, AJAX, 1266 onmouseout event, JavaScript, 1191, 1223 onmouseover event, JavaScript, 1191, 1192,
1223 OnPreRender event, 1366 OnPreRender method, JavaScript, 1222, 1225 OnPreRenderComplete method, Page, 373, 398 onreadystatechange property, JavaScript, 1231 OnRequestComplete function, AJAX, 1261 onResize parameter, Silverlight, 1468 onselect event, JavaScript, 1191 OnServerChange attribute, 134, 135 OnServerClick attribute, 135 onSourceDownloadXyz parameters, 1468 onsubmit attribute, JavaScript, 1208 onunload event, JavaScript, 1191, 1199 OnXyz methods
postbacks and change events, 1133 OOP (object-oriented programming)
ASP.NET and, 9, 10 JavaScript, 1289–1298
base types, 1294–1295 closures, 1290–1291 inheritance, 1296–1297 interfaces, 1297–1298 namespaces, 1295–1296
prototypes, 1292 registering classes with AJAX, 1293–1294
open function, window pop-up windows, 1216
Open method File class, 529 FileInfo class, 532 XMLHttpRequest, 1230
Open value, FileMode, 546 Open Web Site dialog box, 818 OpenMachineConfiguration method, 200 OpenOrCreate value, FileMode, 546 OpenRead method, 529, 532 OpenText method, 529, 532 OpenWebConfiguration method, 200, 201, 202 OpenWrite method, 529, 532 OperationContract attribute, Silverlight, 1508 OperationException property, 520 operations, database, 595–605 Operator property, CompareValidator, 163 operators
DataView, 345 filter operators, 345 LINQ, 570 recursive path operator, 651 ROWNUM operator, SQL, 427
optimistic concurrency, 328, 600 OptimisticConcurrencyException class, 601,
602, 603, 604 opt-in model, view state, 233 opt-in state management, 243 opt-in view state, 17 Option Infer setting, Visual Studio, 568 Options dialog box, Visual Studio, 32, 33 OR operator, DataView, 345 Or operator, Where clause, LINQ, 570 Oracle
SQL injection attacks, 296 Oracle data providers
connection pooling, 283, 284 Oracle provider, ADO.NET, 275 OracleClient namespace, 277 OracleClientFactory class, 311 OracleCommand class see Command class OracleConnection class see Connection class OracleDataAdapter class see DataAdapter class OracleDataReader class see DataReader class OracleException class, 282 OracleTransaction class, 306 Order By operator, LINQ, 570 OrderService class, 205
Location property, 208 orderService element, 204, 206
■ INDEX
1580
OrElse operator, Where clause, LINQ, 570 Orientation property
Menu class, 789 StackPanel, 1482
OriginalFilename property, 538 outlining, Visual Studio, 45–46 output caching, 476–490, 701
cache configuration, 485 cache profiles, 484–485 custom cache provider, 486–489, 490 custom caching, 479–481 declarative output caching, 476–478 disk-based caching, 486 durable caching, 487 extensibility, 486–490 fragment caching, 476, 482 HttpCachePolicy class, 481 memory-based caching, 486 post-cache substitution, 482–484 query string, 478 query string parameters, 479 when it doesn’t work, 479
OutputCache directive, 481, 701 CacheProfile attribute, 485 declarative output caching, 477 Duration attribute, 477 fragment caching, 482 partial caching, 701, 702 post-cache substitution, 483 Shared property, 704 VaryByCustom attribute, 480 VaryByHeader attribute, 480 VaryByParam attribute, 477, 478, 479, 485, 702
outputCacheProfiles section, web.config, 484 OutputCacheProvider class
Add method, 487, 488 building custom cache provider, 487 Get method, 487, 488, 489 Initialize method, 487, 490 overridable methods, 487 Remove method, 487, 488, 489 Set method, 487, 488
OutputStream property, HttpResponse, 109 OutputStream property, Response
using GDI+ in ASP.NET, 1149 using PNG format, 1163
Overline property, FontInfo, 143 Owner property, WindowsIdentity, 954
■P -P switch, aspnet_regsql.exe, 889, 999 Package/Publish SQL tab, 810
Package/Publish Web properties tab, 810 Page class, 105–121
accessing HTTP context in another class, 120–121
AddOnPreRenderCompleteAsync method, 513, 514
AsyncTimeout property, 524 Cache property, 481 ClientScript property, 1208 ClientTarget property, 1125 connecting control tags to page variables,
56 connecting events to event handlers, 57 construction of, 57 Context property, 1011 Controls collection, 97–105 Controls property, 125 creating JavaScript code, 1190 DataBind method, 344
custom expression builders, 358 repeated-value binding, 360 single-value binding, 352, 354
Dispose method, 517 Disposed event, 94 FindControl method, 104, 170, 697 GetPostBackEventReference method, 1134,
1224 GetRouteUrl method, 776 GetValidators method, 171 hierarchy of server controls, 124 Init event
client callbacks, 1244 dynamically setting master page, 733 master pages, 726 page framework initialization, 92 page life cycle with data binding, 369 PageFlow example, 95, 96
interacting with MasterPage class, 732–733 IsCallback property, 1244 IsPostBack property, 92, 1244 IsValid property, 92
cross-page posting, 252, 253 validation controls, 867 validation groups, 172
Load event, 92 adding events to user control, 695 application state, 266 client callbacks, 1244 creating custom web part editor, 1351 creating custom web parts, 1339, 1343 data binding, 373 drawing with GDI+, 1150 dynamic control creation, 104
■ INDEX
1581
dynamically loading user controls, 697 handling events, user controls, 687 handling server-side events, 135 list controls, 153 master pages, 726 page initialization, 689 page life cycle with data binding, 369 PageFlow example, 95, 96 portal frameworks, 699 re-creating control multiple times, 104 showing control tree, 97 testing connections, 281 testing database component, 328 web part page, 1337, 1338
LoadControl method, 698, 702, 1364, 1366 Master property, 732 MasterPageFile property, 733 models for coding web pages, 55 moving between pages, 110–111 OnPreRenderComplete method, 373, 398 pages as control containers, 97–105 placing web method in page, AJAX, 1263 PreInit event, 719, 720, 1125 PreRender event, 93, 95, 369, 373, 514 PreRenderComplete event, 517, 523 properties corresponding to intrinsic
objects, 105 Application object, 106 Cache object, 106 Request object, 106–107 Response object, 108–111 Server object, 111–113 Session object, 106 Trace object, 114–120 User object, 114
RegisterRequiresControlState method, 1130 RegisterRequiresPostback method, 1132 RegisterRequiresViewStateEncryption
method, 245, 1128 RouteData property, 775, 776 StyleSheet property, 719 Theme property, 719 Unload event, 94, 95 Validate method, 171, 867 Validators collection, 169 ViewState property, 1128
Page directive applying themes through configuration file,
718 Async attribute, 513 connecting code-behind files to pages, 55 converting page to user control, 686 creating web projects, 61
EnableEventValidation property, 1243 EnableTheming attribute, 719 MasterPageFile attribute, 724, 725, 734, 735 overriding browser type detection, 1125 StyleSheetTheme attribute, 714 Theme attribute, 712 Title attribute, 725 Trace attribute, 726 trace options, 119 tracing attributes, 115 ValidateRequest property, 1211
page event handlers, 95, 96 page framework initialization, 91 page header, 101–103 page initialization, 689 page life cycle
data binding, 368–369 profiles, 996
page processing, ASP.NET web forms, 72–90 ASP.NET event model, 75 automatic postbacks, 76–77 client-side control IDs, 88–90 dynamic user interface, 74–75 HTML forms, 72–74 HTTP modules, 227–228 postbacks, 72 view state, 77–81 XHTML compliance, 82–87
configuring XHTML rendering, 84–85 default doctype, Visual Studio, 86 document type definitions, 83–84 XHTML validation, 86–87
page processor, JavaScript, 1199–1203 Page property, Control class, 125, 354 page property, view state, 78 page requests, ASP.NET, 79 page templating, master pages, 721 page variables
connecting control tags to, 56–57 Page.xaml file, 1470 Page_Load event procedure, 929 Page_Load method, 1055 PageAction enumeration, 1433 PageAsyncTask object, 524 PageButtonCount property, 429 PageCatalogPart control
adding web parts to pages, 1325, 1332 customizing web part pages, 1327, 1329 uploading web parts dynamically, 1372
PageFlow example, 94–96 PageHandlerFactory class, 218 PageIndex property
GridView control, 424
■ INDEX
1582
PageIndexChanged event DetailsView, 454 GridView, 424
PageIndexChanging event, 424 pagelets, 721 pageLoad function, AJAX, 1269, 1276, 1299 pageLoaded event, 1299 PageLoadedEventArgs class, 1299 pageLoading event, 1299 PageLoadingEventArgs class, 1299 PageMethods object, AJAX, 1263 pageOutput attribute, web.config, 118, 119 pager bar, GridView, 428–430 PageRequestManager class, 1276, 1278, 1299 PagerSettings property, 424, 428 PagerSettings class properties
customizing pager bar, 429 PagerStyle property, 409, 424, 428 PagerTemplate property, 430, 433, 454 pages see web pages pages element, web.config, 196
applying themes, 718 migrating websites, 63
pages, ASP.NET see web forms PageSize property, 424, 426 PageTemplates folder, Dynamic Data, 1421
creating custom page template, 1424 editing default templates, 1422 using different templates for tables, 1439
pageUnload function, AJAX, 1276 pagination, 423, 425–428 paging
ASP.NET 4 changes in data controls, 401 GridView, 423–430
automatic paging, 423–424 counting records, 426 custom pagination, 425–428 customizing pager bar, 428–430 getting paged records, 426–427 paged selection method, 427–428 paging and selection together, 425
ListView, 450–451 PagingBulletedListExtender control, AJAX, 1311 PagingSettings property, 452 PagingStyle property, 452 Pair class, control state, 1130 Panel control
adding button to, 103 pages with multiple views, 738 ScrollBars property, 146–147, 406 Visible property, 738
Panel control class, 139 PanelID property, 1248, 1249
Parallel LINQ, 563 param element, Silverlight, 1466 ParamArray keyword, 642 parameter array, 642 Parameter object
stored procedures, 300 Parameter tag
parameterized commands, 376 parameter types, 375 parameterized commands
@ symbol, 374 naming conventions, 297–298, 379
avoiding SQL injection attacks, 297, 298 configuring parameter binding at design
time, 376 OLE DB provider, 297 parameter types, 375 secure coding, 838 SqlDataSource, 373–378, 382
parameterized constructor, 388–389 Parameters collection
adding parameters with implicit data types, 301
Parent property accessing web part properties, 1334 Control class, 125 DirectoryInfo class, 531
parent/child view in single table, 458–460 parentElement property, JavaScript, 1196 parentID attribute, browser, 1123 ParentLevelsDisplayed property, 756, 761 ParentNode property, 762 ParentNodeStyle property, 784 Parse method, XDocument, 644 part pages see web part pages PartChromeState, 1332 PartChromeType, 1332 partial caching, 476, 482, 701–704
OutputCache directive, 701 sharing cached controls, 704 VaryByControl attribute, 702–704
partial classes, 55 adding validation annotations, MVC, 1406 connecting control tags to page variables,
56 entity classes, 584 user controls, 684
partial page refreshes, AJAX, 1252 partial rendering, AJAX, 1272
PageRequestManager, 1299 Timer control, 1280 UpdatePanel, 1273–1280
partial session state, 233
■ INDEX
1583
PartialCaching attribute, 704 PartialCachingControl object, 702 Pascal case filtering, Visual Studio, 49 Passport authentication, 855, 856, 857 Password ID
CreateUserWizard template, 920 Login template, 907
password type, input tag, 129 passwordAttemptWindow property, 895 PasswordBox class, Silverlight, 1472 PasswordFor method, MVC, 1396 passwordFormat attribute
credentials, 869 membership, 896
passwordFormat property SqlMembershipProvider, 894 XmlMembershipProvider, 1087, 1088
PasswordLabelText property, 903 PasswordRecovery control, 912–917
events, 914 MailDefinition element, 913 QuestionTemplate property, 914, 915, 916 security controls, membership API, 898 special controls for templates, 916 SuccessTemplate property, 914, 915, 916 templates, 914–917 UserNameTemplate property, 914, 915, 916
PasswordRecoveryIconUrl property, 905 PasswordRecoveryText property, 905 PasswordRecoveryUrl property, 905 PasswordRequiredErrorMessage property, 904 passwords
ChangePassword control, 917–918 hashing in web.config, 869–870 membership API, 881 regular expressions, 166 salted password hashes, 1034, 1091–1093
PasswordStrength extender, AJAX, 1311 passwordStrengthRegularExpression property
SqlMembershipProvider, 895 XmlMembershipProvider, 1086
path attribute httpHandlers element, 221 machine.config, 194, 195 web.config, 862
Path class, 538–540 Combine method, 539, 540 creating unique filenames, 554 GetFileName method, 539, 540, 554 methods, 540 Silverlight elements, 1473
Path property, URL mapping, 775 PathDirection property, 756
paths AddPath method, 1157 combining multiple paths, XPath, 652 DrawPath method, 1153, 1156 FillPath method, 1154, 1156 GraphicsPath class, 1149, 1156–1157 recursive path operator, 651 selecting element in path, XPath, 652
PathSeparator property, 756 PathSeparatorStyle property, 757 PathSeparatorTemplate property, 757 pause button, Visual Studio, 66 Pause method, Storyboard, 1497 pdb files, 59 pe switch, aspnet_regiis.exe, 210 Pen object
DrawXyz methods, Graphics, 1154, 1157 Pens class, 1157–1159
properties, 1158 pens, GDI+, 1157–1160 PenType property, 1158 percent sign (%), URL encoding, 247 Percentage method, web controls, 141 Percentage type format string, 407 percentagePhysicalMemoryUsedLimit
attribute, 485 performance
application state, 267 asynchronous pages, 512 caching, 475 credentials store, web.config, 871 disabling session state management, 259 GDI+, 1162 MultiView pages, 741 profiles, 995–996 state management options compared, 234,
235, 236 stored procedures, 299 StringBuilder class, 289
performance monitoring Trace object, 114
permissions changing declarative permissions, 975 controlling role access, URL authorization,
970 PrincipalPermission class, 973–975
persistence InstallPersistSqlState.sql script, 891 machine.config file, 202 view state, 72, 77–81 web.config file, 202
persistent cookies forms authentication, 872–873
■ INDEX
1584
Personalizable attribute, web parts, 1341, 1369 personalization
accidentally modifying/closing zones, 1327 creating custom web parts, 1341 implementing web parts through user
controls, 1339 InstallPersonalization.sql script, 890 resetting, 1374 web part pages, 1367 web parts, 1374–1375 Web Parts Framework, 1317
Personalization property, 1374 pessimistic concurrency, 328 phantom rows, databases, 309
isolation level locking behavior, 310 Physical path
Add Virtual Directory dialog, 821 Add Web Site dialog, 820
PhysicalApplicationPath property, 106 physicalFile argument, MapPageRoute, 775 pipeline modes
application pools, IIS, 827 pipelines
IIS 7.x pipeline, 946–950 Pixel method, web controls, 141 PKCS (Public-Key Cryptography Standard), 1032 PlaceHolder control
dynamic control creation, 104 dynamically loading user controls, 697, 698 ListView templates, 446 portal frameworks, 698, 699 positioning templates, Wizard, 751 programmatically creating server controls,
131 placeholders
downloading images asynchronously, 1203 grouping, ListView, 449 ListView templates, 446 parameterized commands, 297
Platform property, HttpBrowserCapabilities, 1124
plug-ins Flash, 1459 Silverlight, 1458, 1459
PNG format, 1152, 1163 PointAnimation class, Silverlight, 1495 PointAnimationUsingKeyFrames class, 1495 Points collection, 1176 PolygonHotSpot class, 1144 polygons
AddPolygon method, 1157 DrawPolygon method, 1154 FillPolygon method, 1154
pool of application objects, 184 pooling
connection pooling, 283–284 Pooling setting, 284 PopOutImageUrl property, 787 PopulateNodesFromClient property, 780 PopulateOnDemand property, 780 PopUnder property, 1217 pop-under windows, 1216 PopUp control, 1216, 1220 pop-up windows, JavaScript, 1216–1221 PopupControlExtender control, AJAX, 1311 port 443
SSL-based access, 849 Port value, Add Web Site dialog, 820 portal frameworks, 698–701 portal pages, 1318 portals, ASP.NET 2.0, 13 position function, XPath, 652 Position property, CryptoStream, 1041 POST injection attacks, 298, 1242 POST operation, HTTP, 73 postbacks, 72, 1131–1134
Ajax, 1229 automatic postbacks, 76–77, 149 AutoPostBack property, 151 callbacks compared, 1244 creating JavaScript page processor, 1201 cross-page posting, 247, 247–253 doPostBack function, 76, 77, 1190 IPostBackDataHandler interface, 1131 IsCrossPagePostBack property, 251 IsPostBack property, 251 LoadPostData method, 1131 managing browser history, 1284 partial rendering, 1272 RaisePostDataChangedEvent method, 1131 sorting and paging callbacks, 429 triggering, 1134–1136 triggers, UpdatePanel, 1279 view state, 236
PostBackTrigger class, 1279 PostBackUrl property, 247, 249 PostBackValue property, 1145 post-cache substitution, 482–484
Substitution control, 483, 484 PostedFile property, 551 PostRequestHandlerExecute event, 185 PowerUser role, WindowsBuiltInRole, 953 prebuilt zones, web part pages, 1320 precedence
CSS rules, 709 themes, 714
■ INDEX
1585
precompilation, 4, 6 project-based development, 59
Predictable value, ClientIDMode, 89, 90 PreInit event, Page
applying themes dynamically, 719, 720 overriding browser type detection, 1125
PreRender event, Page, 93, 95 creating asynchronous pages, 514 data binding, 373
page life cycle with, 369 PreRender event, web parts, 1343, 1359 PreRenderComplete event, 517, 523 PreRequestHandlerExecute event, 185 presentation namespace, Silverlight, 1475 preserveForm parameter, 250 PreviousButtonClick event, 746 PreviousPage property, 248, 249 PreviousPageText property, 429 PreviousPageType directive, 249 PreviousSibling property, 762 PreviousViewCommandName field, 741 PrincipalPermission attribute, 974–975 PrincipalPermission class, 973–975
Demand method, 973 Intersect method, 974 Union method, 974
PrintOperator role, WindowsBuiltInRole, 953 priorities
cache priorities, 495–496 private keys
asymmetric encryption algorithms, 1038, 1050, 1051
SSL, 845, 846 privateBytesLimit attribute, web.config, 485 privateBytesPollTime attribute, 485 privileges, impersonation, 958 processing requests, pipeline modes, 830 processing stages, web forms, 90–96
automatic data binding, 93 cleanup, 94 event handling, 93 page framework initialization, 91 PageFlow example, 94–96 user code initialization, 92 validation, 92
ProcessRequest method custom controls using GDI+, 1167 IHttpHandler, 219, 227, 466
ProductXyz properties, 538 Profile class
LastActivityDate property, 1005 LastUpdatedDate property, 1005 Save method, 1005, 1010
profile element, web.config, 196 automaticSaveEnabled attribute, 1010 configuring SqlProfileProvider, 1001
profile groups, 1007–1008 profile properties, 1002–1005 Profile property, current page, 1004 profile providers
custom profile providers, 1017, 1029 classes, 1017–1019 coding, 1021–1025 designing, 1020–1021 testing, 1026–1029
FactoredProfileProvider class, 1020–1029 reading profile information, 1023–1024 updating profile information, 1025
profile section, web.config, 1003, 1015 profile service, AJAX, 1270–1272 profile tables, 999–1000 ProfileAuthenticationOption enumeration,
1013 ProfileAutoSaving event, 1010, 1011, 1012 ProfileBase class, 1004, 1012, 1017 ProfileCommon class, 1012, 1013 ProfileInfo class, 1013 ProfileManager class, 1013
custom profile providers, 1018 methods, 1013–1014
ProfileModule class, 996, 1003 custom type serialization, 1009 default values, 1003 managing automatic saves, 1010 MigrateAnonymous event, 1016 profile serialization, 1007 ProfileAutoSaving event, 1010, 1011, 1012
ProfileParameter tag, 375 ProfileProvider class, 1017
coding FactoredProfileProvider, 1021 custom profile providers, 1017 methods, 1019
profiles, 995–998 accessing profile information, 1004 anonymous profiles, 1015–1017 anonymous user log in, 1016–1017 ASP.NET 2.0, 13 aspnet_Profile table, 999 auditing, 998 authentication, 995, 997 cache profiles, 484–485 caching, 998 custom data components compared, 998 custom data types, 1008–1012 custom profile providers, 1017–1029 database tables used for, 999–1000
■ INDEX
1586
encryption, 998 InstallProfile.sql script, 891 managing automatic saves, 1010–1012 page life cycle, 996 performance, 995–996 retrieving information for specific user, 1012 retrieving profile that doesn’t exist, 1013 scalability, 996 serialization, 1009–1010 SqlProfileProvider class, 998–1017
anonymous profiles, 1015–1017 configuring provider, 1001–1002 creating profile tables, 999–1000 defining profile properties, 1002–1003 profile groups, 1007–1008 profile serialization, 1005–1007 using profile properties, 1003–1005
state management compared, 235, 236, 995 stored procedures, 1001 storing data, 996–997 validation, 998
profiles API, 1012–1014 ProfileService class, 1271 profileService element, web.config, 1270 programmatic encryption, 209–210 programmatic impersonation, 957, 960–963
getting tokens, 960–961 performing impersonation, 961–963
programmatic navigation, 761 programming
OOP in JavaScript, 1289–1298 programming models, wizards, 746 progress indicator
UpdateProgress control, 1282 ProgressBar class, 1472 ProgressTemplate property, 1283
cancel button, 1284 project management events, Visual Studio, 37 Project Types tree, 60 project-based development, 22, 23, 59–60
see also web projects adding assembly references, 45 creating web projects, 60–61 deployment, ASP.NET, 60 file management, 59 migration, 60 models for coding web pages, 53 projectless development compared, 59, 60
Project/Solution command, 62 projections, LINQ expressions, 567–569 projectless development, 23
adding assembly references, 44 advantage of, 58
control declarations, 60, 61 creating website, 23–27
development language, 24 framework version, 24–25 location, 26–27 template, 25–26
debugging, 59 deploying website, 817–819 deployment, 59 file management, 59 language mixing, 59 migrating websites, 61 models for coding web pages, 53 project-based development compared, 59,
60 team collaboration, 59 Visual Studio, 1113 web.config file, 61
Projects tab, Add Reference dialog, 215 promotable transactions, 304 properties
see also server control properties adding, user controls, 687–689 automatic properties, 320 entity classes, 584 profile properties, 1002–1005 web control classes, 139
properties collection, ProfileService, 1271 properties element, web.config, 1002 Properties window, Visual Studio, 28, 29, 35
configuring command in, 370 configuring GridView styles, 411 connecting events to event handlers, 57 PageFlow example, 94
property element attributes, web.config, 1003 property-based animation, Silverlight, 1494 PropertyExpression filter, 617–618 PropertyGridEditorPart class, 1349, 1350 PropertyNames field, 999, 1006, 1007 PropertyValuesBinary field, 999, 1006, 1007,
1017 PropertyValuesString field, 999, 1005, 1006,
1007, 1017 protected accessibility keyword, 56 protected variables, 57 ProtectedData class, 1043, 1061 protection attribute, web.config, 861 ProtectKey property, 1043, 1045 ProtectSection method, 209 prototype property
client-side AJAX control, 1300 JavaScript, 1292, 1297
prototypes, JavaScript, 1292
■ INDEX
1587
prov switch, aspnet_regiis.exe, 210 provider attribute, web.config, 1003 provider model, ASP.NET 2.0, 13 Provider property
Roles class, 984 SiteMap class, 762
provider web parts, 1355, 1356–1358 provider-agnostic code
creating factories, 311–312 creating objects with factories, 312–313 queries with, 313–315
ProviderBase class coding FactoredProfileProvider, 1021–1022 custom profile providers, 1017 implementing provider classes, 1079 Initialize method, 1018, 1022, 1023 name property, 1018
ProviderConnectionPointID parameter, 1363 providers
see also custom membership and roles providers; data providers
ActiveDirectoryMembershipProvider, 883, 884
AuthorizationStoreRoleProvider, 980 cache provider, 486–490 configuring membership providers, 892–896 ConnectionProvider attribute, 1355, 1356,
1358, 1362 custom profile providers, 1017–1029 DbProviderFactories, 311, 312 DbProviderFactory, 312, 313 DESCryptoServiceProvider, 1037 DPAPI provider, 208, 1043 DSACryptoServiceProvider, 1038 FactoredProfileProvider, 1020–1029 implementing provider classes, 1078–1101 membership providers, 884, 892–896, 923–
925 MembershipProvider, 883, 1069, 1079 MembershipProviderCollection, 883 ODBC provider, 275, 276 OLE DB provider, 275, 276, 279, 297 Oracle provider, 275, 283, 284 OutputCacheProvider, 487, 488, 489, 490 ProfileProvider, 1017, 1019, 1021 RC2CryptoServiceProvider, 1037 RoleProvider, 980, 1069, 1096, 1097 RoleProviderCollection, 980 RSA provider, 208 RSACryptoServiceProvider, 1038 SettingsProvider class, 1017, 1018, 1019 SiteMapProvider class, 753, 764–772 SQL Server data providers, 283, 284
SqlMembershipProvider, 883, 884, 885, 886, 887, 892, 893, 894
SqlProfileProvider, 998–1017 SqlRoleProvider, 979, 980, 988 SqlSiteMapProvider, 765, 766, 767, 768, 770,
771 state providers, 256 StaticSiteMapProvider, 764, 765, 769 TripleDESCryptoServiceProvider, 1037 using custom provider classes, 1102–1105 using custom providers with IIS 7.x, 1104–
1105 VirtualPathProvider, 822–825 WindowsTokenRoleProvider, 980, 986 XmlMembershipProvider, 1070, 1078–1095,
1102 XmlRoleProvider, 1070, 1095–1101, 1102 XmlSiteMapProvider, 751, 752, 753, 759,
760, 764 Providers feature, IIS 7.x, 993 Providers property, Roles, 984 providers section, web.config, 893, 1020 ProviderSpecific serialization option, 1006 ProviderUserKey property
custom providers, 1069, 1071 encrypting sensitive data, 1054, 1057, 1058
proxy class, Silverlight, 1508, 1510, 1511 proxy objects, AJAX, 1261 public keys
asymmetric encryption algorithms, 1038, 1050, 1051, 1052
SSL, 845, 846 Publish Web dialog box, 811, 812, 815, 816
■Q QEL (Quotation Exchange Language), 211 quantifiers, regular expressions, 165 queries
avoiding wide-open queries, 318 with provider-agnostic code, 313–315
queries, LINQ, 563–577 LINQ to DataSet, 577–580 LINQ to Entities, 581–595
queries, SQL, 288 ObjectDataSource, 386–388 SqlDataSource, 370–372
query strings, 245–247 encrypting, 1059–1064 output caching, 478, 479 state management options compared, 234 wrapping, 1060–1063
QueryDataFromDatabase method, 493
■ INDEX
1588
QueryExtender control, 615–619 MethodExpression filter, 618–619 PropertyExpression filter, 617–618 RangeExpression filter, 616–617 SearchExpression filter, 615–616
querying stored procedures LINQ to Entities, 587–589
QueryString collection, 246 QueryString Collection section, trace log, 115 QueryString property, 107, 775 QueryStringParameter tag, 375 Question ID
CreateUserWizard template, 920 PasswordRecovery template, 916
QuestionTemplate property, 914, 915, 916 QueueUserWorkItem method, 515 quirks mode, Internet Explorer, 84 Quotation class, 211 quotation marks
" entity, HTML, 112
■R -R switch, aspnet_regsql.exe, 889 radio type, input tag, 129 RadioButton control class, 139
Silverlight elements, 1472 validating, 158
RadioButtonFor method, MVC, 1396 RadioButtonList control, 151, 152
repeated-value binding, 359 RaiseCallbackEvent method, 1239, 1240, 1246 RaisePostBackEvent method, 1135, 1224 RaisePostDataChangedEvent method, 1131,
1133 RAISERROR statement, transactions, 306 RandomNumberExpressionBuilder class, 356 RandomNumberGenerator class, 1035 Range attribute
adding validation annotations, MVC, 1406, 1407
validating data fields, Dynamic Data, 1452, 1454
RangeExpression filter, QueryExtender, 616–617 RangeValidator control, 158, 162 Rating control, AJAX, 1313 RawUrl property, 775 RC2 abstract algorithm class, 1037 RC2CryptoServiceProvider class, 1037 Read method
DataReader, 287, 288, 291 StreamReader, 549 XmlTextReader, 632
readAccessProperties attribute, 1270, 1271 ReadAllBytes method, 529, 549 ReadAllLines method, 529 ReadAllText method, 529, 549 ReadCommitted value, IsolationLevel, 308, 310 ReadElementString method, 634 ReadEndElement method, 634 reading configuration sections
programmatically, 199–202 reading XML files, 632–635 reading XML with XDocument, 644–646 ReadInt32 method, 550 ReadKey method, 1045, 1046, 1052 ReadLine method, 549 readOnly attribute, web.config, 1003 ReadOnly mode, DetailsView, 453 ReadOnly property, BoundField, 404 ReadOnly value, FileAttributes, 535 ReadStartElement method, 634 ReadString method, 550 ReadToEnd method, 549 ReadUncommitted value, IsolationLevel, 308, 310 ReadXml method, 334, 632, 677, 678, 1185 ReadXmlSchema method, 334, 678 readyState property, Ajax, 1236 Recent tab, Add Reference dialog, 216 record pagination, 423 records
custom pagination, ObjectDataSource, 426 deleting, SqlDataSource, 383 DetailsView control, 451, 452
operations on records, 453–454 FormView control, 451 inserting, SqlDataSource, 384 selecting
ObjectDataSource, 386–388 SqlDataSource, 370–372
updating ObjectDataSource, 392–396 SqlDataSource, 379–380
RecreateChildControls method, 1138 Rectangle class, Silverlight, 1473 RectangleHotSpot class, 1144 rectangles
AddRectangle method, 1157 DrawRectangle method, 1154 FillRectangle method, 1154
recursive path operator, 651 Recycle action, application pools, 828 Redirect method, 108, 110, 246, 264 RedirectFromLoginPage method, 899, 900
controlling user access, 968 creating custom login page, 867, 868
■ INDEX
1589
custom credentials store, 871 persistent cookies, 872
redirection, 774 RedirectPermanent method, 108, 110 RedirectResult class, MVC, 1410 redirects4, 71 RedirectToAction method, MVC, 1409, 1410,
1411, 1412 RedirectToRoute method
action results, MVC, 1409 HttpResponse, 108
RedirectToRoutePermanent method, 108 RedirectToRouteResult class, MVC, 1409 reference assemblies, Visual Studio, 24 referential integrity, 340 Reflector tool, 7 Refresh event
DirectoryInfo class, 531, 533 DynamicPanel control, 1249 ObjectContext, 602, 604
Refresh Now verb, 1364 RefreshMode enumeration, 602, 603 regenerateExpiredSessionId attribute, 265, 266 Register directive
accessing custom controls, 1112 creating user control, 685 custom controls in Toolbox, 1114 using custom web parts, 1347
RegisterAsyncTask method, 524, 525 registerClass method, JavaScript, 1293, 1294,
1296, 1298 RegisterClientScriptBlock method, 1208, 1227 RegisterForEventValidation method, 1242 registerInterface method, JavaScript, 1297 registerNamespace method, JavaScript, 1295 RegisterRequiresControlState method, 1130 RegisterRequiresPostback method, 1132 RegisterRequiresViewStateEncryption method,
245, 1128 RegisterRoutes method
Dynamic Data, 1417, 1433, 1438, 1441 MVC application, 1385
RegisterStartupScript method, 1208, 1227 RegisterStyle method, 102 regular expressions, 164–166
greedy matching, 1140 RegularExpressionAttribute, MVC, 1407 RegularExpressionValidator control, 158,
163–166 creating custom login page, 866 Login templates, 907 ValidationExpression property, 163
relational operators, LINQ, 570
Relations property, DataSet, 332, 338 relationships
entity relationships LINQ to Entities, 586–587 one-to-many relationships, 586 one-to-one relationships, 587
filtering with, DataView, 347–348 table relationships, 337–339
relative links, cookieless state, 264 relative paths, master pages, 730–731 ReleaseRequestState event, 185 RememberMe ID, Login template, 907 RememberMeSet property, 904 remote connections
preparing IIS using web deploy, 805 remote method calls, AJAX, 1252 Remote Web Site type, Choose Location dialog,
27 Remove method
Cache object, 503 OutputCacheProvider, 487, 488, 489
Remove value, Transform attribute, 809 Removed value, CacheItemRemovedReason,
504 removeHandler method, HoverButton, 1300 RemoveUserFromRole method, 985 RemoveUserFromRoles method, 985 RemoveUsersFromRole method, 985 RemoveUsersFromRoles method, 985, 1099 Rename Tab option, 38 Render method
Control class, 1110, 1111, 1115, 1119 ControlAdapter, 1126 JavaScript, 1218 WebControl, 1116
RenderBeginTag method, 1122 HtmlTextWriter, 1110, 1111 WebControl, 1116, 1118, 1119 WebControlAdapter, 1126
RenderChildren method, 1119, 1126 RenderContents method
Control class, 1118 creating custom web parts, 1339 initializing custom web part, 1342 rendering custom web parts, 1346 WebControl class, 1116, 1118, 1119 WebControlAdapter class, 1126 XmlLabel control, 1141
RenderControl method, 126 creating custom web parts, 1339 rendering custom web parts, 1346 rendering process, 1119, 1120
RenderCurrentNodeAsLink property, 756
■ INDEX
1590
RenderEndTag method, 1122 HtmlTextWriter, 1110, 1111 WebControl, 1116, 1119 WebControlAdapter, 1126
rendering adaptive rendering, 1126 configuring XHTML rendering, 84–85 controlRenderingCompatibilityVersion
attribute, 84 creating custom web parts, 1339, 1345–1346 custom controls using GDI+, 1169–1172 custom server controls, 1119–1121 image format and quality, GDI+, 1152 implementing web parts through user
controls, 1339 legacy rendering, 85 page rendering, 100 partial rendering, 1272 script blocks, JavaScript, 1208–1209
rendering methods, controls, 1120 RenderMode property, UpdatePanel, 1274 RenderTransform property, Silverlight, 1504,
1505 RenderTransformOrigin property, 1504 ReorderList control, AJAX, 1313 ReparsePoint value, FileAttributes, 535 RepeatableRead value, IsolationLevel, 309, 310 RepeatBehavior property, Silverlight, 1498 RepeatColumns property, 153 RepeatDirection property, 152 repeated-value binding, 352, 359–367
binding to DataReader, 363–365 binding to DataView, 367 data properties of list controls, 359 DataSource property, 352 GridView control, 366–367 list controls, 361 rich data controls, 365–367
repeated-value controls, data binding, 352 RepeatLayout property, 152 Replace method, String, 113 Replace value, Transform attribute, 809 replay attacks
Digest authentication, 939 forms authentication, 857
Replicator role, WindowsBuiltInRole, 953 Reporting Toolbox tab, 38 Reports Web Site template, 26 ReportViewer control, Visual Studio, 38 Request Context Parameter field
Application Warm-Up, IIS, 830 Request Details section, trace log, 114 Request object, 105, 106–107
ApplicationPath value, 201 Cookies collection, 254 CurrentExecutionFilePath value, 201 Form collection, 73 HttpRequest properties, 106 Path property, 775 QueryString collection, 247 QueryString property, 775 RawUrl property, 775
Request Send Mode field Application Warm-Up, IIS, 830
request validation script injection attacks, 1210–1215
disabling request validation, 1211–1213 extending request validation, 1213–1215
requestLimit attribute, web.config, 118, 119 requests
application events, 185–186 XMLHttpRequest object, 1230–1231
requestValidationMode attribute, 1211 requestValidationSource argument
IsValidRequestString method, 1214 requestValidationType attribute, 1215 RequestValidator class, 1214 Required attribute, Dynamic Data, 1451, 1452 RequiredAttribute class, MVC, 1407 RequiredFieldValidator control, 158, 162
creating custom login page, 866 cross-page posting, 252, 253 EnableClientScript property, 253 InitialValue property, 162 Login templates, 907
RequiresPersonalization property, 1328 requiresQuestionAndAnswer property, 895 requireSSL attribute, web.config, 861 requiresUniqueEmail property, 895 reset type, input tag, 129 ResetPassword method, 1091, 1093 resizable attribute, pop-ups, 1216 Resizable property, PopUp, 1217 ResizableControlExtender control, AJAX, 1311 ResolveRequestCache event, 185 ResourceExpressionBuilder class, 355 Resources collection, Silverlight, 1496
animating transforms, 1506 Response object, 105, 108–111
BinaryWrite method, 464, 465, 466 Cache property, 481 Cookies collection, 254 HttpResponse methods, 108, 109 HttpResponse properties, 108, 109 moving between pages, 110–111 OutputStream property, 1149, 1163
■ INDEX
1591
Redirect method, 264 Write method, 97, 248
responseText property, 1231 responseXML property, 1231 Result property
CompletedSyncResult, 521, 522 EventArgs, 1511
result sets, processing multiple, 291–292 Resume method, Storyboard, 1497 reusability
implementing web parts, 1339 rich controls, 124, 172–177
AdRotator, 173–174 Calendar, 173, 175–177 MultiView, 173 Substitution, 173 View, 173 Wizard, 173 Xml, 173
rich data controls changes in ASP.NET 4, 401 deleting records, 383 DetailsView, 451, 452–454 FormView, 451, 454–456 GridView, 402–444 inserting records, 384 ListView, 444–451 repeated-value binding, 365–367 updating records, 379
rich navigational controls, 737 RID (Role Identifier), 952 Rijndael (AES)
machineKey element, 191 Rijndael abstract algorithm class, 1037 RijndaelManaged class, 1037 robots metatag, 102 role service, AJAX, 1267–1270 role-based authorization, 842, 975–988
accessing roles programmatically, 984–986 AJAX application services, 1267–1270 enabling, 976 using LoginView with roles, 983
RoleExists method Roles class, 985 XmlRoleProvider, 1097, 1098
RoleGroup control, 911 RoleGroups template, 983 roleManager element, web.config, 196
accessing roles programmatically, 984 configuration, 977, 978–979
RoleManagerModule class, 980 role-based authorization, 976, 981 Windows authentication, 987
RolePrincipal class, 952, 980 IsInRole method, 981 role-based authorization, 976, 981 Windows authentication, 987
RoleProvider class, 980 ApplicationName property, 1097 creating custom providers, 1069 implementing XmlRoleProvider, 1096
RoleProviderCollection class, 980 roles
accessing programmatically, 984–986 adding users to, 981 authorization in IIS 7.x, 988–994 authorization using IsInRole method,
972–973 authorization in IIS 7.x, 991–993 authorization, role-based, 975–988 changing declarative permissions, 975 classes, 980 configuring, 976 controlling access, 970–972 IdentityReference class, 955 implementing custom providers, 1067 InstallRoles.sql script, 890 managing with IIS 7.x, 993–994 membership and roles framework, 1068 using LoginView with, 983 Windows authentication, 986–988 XmlRoleProvider class, 1095–1101
roles attribute, nodes, 773 Roles class, 980
accessing roles programmatically, 984, 986 AddUsersToRole method, 986 debugging using WAT, 1103 methods, 984–985 Provider property, 984 Providers property, 984 role-based authorization, 976
roles providers see also custom membership and roles
providers configuring role-based authorization, 978 configuring with IIS 7.x, 994
RoleService class, 1268 roleService element, web.config, 1267 RoleStore class
designing and implementing store, 1072, 1076
designing custom providers, 1070 GetRole method, 1099 GetRolesForUsers method, 1100 implementing XmlRoleProvider, 1095, 1099,
1100
■ INDEX
1592
Rollback method, Transaction, 306 setting savepoints, 310
rollover buttons, JavaScript, 1221–1225 root element
well-formed XML, 624 XML schemas, 627
root node showing portion of site map, 758
Root property, 531 RootDirectory property, 534 RootNode property, 762 RootNodeStyle property, 757, 784 RootNodeTemplate property, 757 RotateTransform class, Silverlight, 1503, 1504,
1505 RoundedCornersExtender control, AJAX, 1311 RouteCollection class
MapPageRoute method, 775 RouteData property, 775, 776 routeName argument
MapPageRoute method, 775 RouteParameter tag, 376 routes, 1432–1437
changing URL format, 1435 constraining, 1435–1437 customizing Dynamic Data websites with,
1432–1441 route discovery by table, 1439 switching to single-page editing, 1437–
1438 using different templates for tables,
1438–1441 DynamicDataRoute class, 1433
Routes property, 775 RouteTable class, 775 routeUrl argument
MapPageRoute method, 775 RouteValueDictionary class, 1436, 1439 routing
ASP.NET 4, 17 configuring, MVC, 1385–1386 navigation changes in ASP.NET 4, 737 register routes, 775 URL routing, 774, 775–776
Row property, Silverlight, 1489 RowCommand event, GridView
adding events to user control, 694 handling events, 436 using data field as Select button, 418
RowDataBound event, GridView binding to a method, 435 formatting-specific values, 412 parent/child view in single table, 460
RowDefinitions collection, 1488, 1489 RowFilter property, DataView, 342, 345, 498 ROWNUM operator, WHERE clause, 427 ROWNUMBER function, SQL, 427 rows
DataRow class, 333 GridView styles, 409 searching for specific rows, 340 selecting rows, GridView, 414–418 SingleRow value, 291
Rows collection, 132, 333 RowSpan property, 1493 RowStyle property, 408 RowUpdated event, 470 RowUpdating event, 440 RSA abstract algorithm class, 1038, 1050 RSA provider, 208 RSACryptoServiceProvider class, 1038 rules, CSS, 706–708
applying stylesheet rules, 708–709 precedence, 709
Run to Cursor command, Visual Studio, 66 runat="server" attribute, 10
configuring HTML element as server control, 31
connecting control tags to page variables, 56
creating server-side HTML controls, 38 form tag, ASP.NET, 74 HTML server controls, 123, 128
■S -S switch, aspnet_regsql.exe, 889, 891, 999 salted password hashes, 1034, 1091–1093 Save method
Bitmap class, 1163 Configuration class, 201, 202 Image class, 1151, 1162 implementing custom store, 1075 managing automatic saves, 1010 Profile class, 1005, 1010 ProfileCommon, 1012 ProfileService, 1271 SqlTransaction, 310 XDocument, 644 XmlDataSource, 677 XmlDocument, 639
SaveAs method Configuration class, 202 HttpPostedFile, 551
SaveChanges method, MVC, 1390 SaveChanges method, ObjectContext
■ INDEX
1593
concurrency, database operations, 600, 601 delete database operations, 600 handling concurrency conflicts, 603, 604 insert database operations, 595, 596 inserting associated entities, 598 update database operations, 599
SaveControlState method, 1130 savepoints, transactions, 310 SaveStore method, 1074, 1075 SaveViewState method, 1129 ScaffoldAllTable property, 1418 ScaffoldColumn attribute, 1446, 1447 scaffolding
Dynamic Data website, 1446–1448, 1419 scalability
pessimistic concurrency, 328 profiles, 996 transactions affecting, 303
ScaleTransform class, Silverlight, 1503 schemas
advantages of XML, 623 aspnet_SchemaVersions table, 1000 XML, 626–628
Scientific type format string, 407 scope
state management options compared, 234, 235
script block, ascx file, 686 script blocks, JavaScript, 1189, 1190, 1193–1195
rendering, 1208–1209 script injection attacks, 1210–1215
request validation, 1210–1215 disabling, 1211–1213 extending, 1213–1215
script libraries, AJAX, 1252–1253 script resources, AJAX, 1253 script tags
inadvertently executing block of, 113 request validation, 1210
extending, 1214 script injection attacks, 1210
ScriptManager control, AJAX, 1253, 1272 AddHistoryPoint method, 1285 adding history points, 1285–1286 Application object, 1298 ASP.NET AJAX control toolkit, 1305 AutoCompleteExtender control, 1306 calling web services, 1260 client-side AJAX control, 1302 EnableHistory property, 1285 EnablePageMethods property, 1263 EnablePartialRendering property, 1273 EnableSecureHistoryState property, 1287
handling errors, UpdatePanel, 1275 managing browser history, 1284–1288 Navigate event, 1286, 1287 partial rendering, UpdatePanel, 1273 placing web method in page, 1263 registering classes, 1293, 1294 restoring page state, 1287 storing state in URL, 1287–1288
ScriptManagerProxy control, 1253 ScriptMethod attribute, AJAX, 1263 scripts
writing client-side scripts, Ajax, 1240–1242 Scripts folder, MVC, 1378 ScriptService attribute, AJAX, 1256, 1257 scrollbars attribute, pop-ups, 1216 ScrollBars property
Panel, 146–147, 406 PopUp, 1217
ScrollViewer class, Silverlight, 1473 SDK (software development kit)
ildasm.exe file, 7 Seadragon control, AJAX, 1313 Search terms box, Visual Studio, 51 SearchExpression filter, QueryExtender,
615–616 searching XML content, 648–655
LINQ, 653–655 XmlDocument, 648–651 XPath class, 651–653
secret keys, 846 secrets, managing
disassembling tools, 1042 encrypting sensitive data, 1041–1043 ProtectedData class, 1043
section element, web.config, 206 SectionInformation class, 209 sections, replacing
transforming web.config file, 809 Secure Sockets Layer see SSL Secure subdirectory, web.config, 194 securing session state, 265–266 security
application services, AJAX, 1269 authentication, 841 authorization, 841–842 certificates, SSL, 845 confidentiality, 842 creating secure software, 837–839
gatekeepers, 839–840 secure coding, 838–839 understanding threats, 837–838
creating unique filenames, 553–556 credentials store, web.config, 871
■ INDEX
1594
encrypting configuration sections, 208–210 encryption, 842 forms authentication, 853–879 generating cryptographically strong random
numbers, 1034 impersonation, 841, 957 implementing cookie authentication, 857 integrity, 842 levels of, 840–844 locking file access objects, 556–557 multiple users accessing files, 552–557 persistent cookies, 872 placing web method in page, AJAX, 1264 script injection attacks, 1210–1215 session hijacking, 872 setting up security in WAT, 884, 885 SSL, 844–850
configuring bindings for, 849 configuring in IIS, 847–850 encoding information with, 850
state management options compared, 234, 235, 236
stored procedures, 299 view state, 244–245 web applications, 837
security classes, cryptography namespace, 1032 security controls, ASP.NET 2.0, 13 security controls, membership API, 898–923
ChangePassword, 899, 917–918 CreateUserWizard, 899, 918–923 Login, 898, 899–910 LoginStatus, 898, 910–911 LoginView, 898, 911–912 PasswordRecovery, 898, 912–917
Security Setup Wizard, 976 security trimming, site maps, 772–773 SecurityCritical attribute, Silverlight, 1481 SecurityException class, 530 SecurityIdentifier class, 955, 956 Seek method
BinaryWriter class, 550 CryptoStream class, 1041 Storyboard class, 1497
Select Application Pool dialog box, 828 Select clause, LINQ, 567, 568 Select method
DataTable, 340, 341 lambda expressions, 576 LINQ expressions, 575, 576, 577 XPathNavigator class, 652
Select property, EntityDataSource, 609
SELECT query, SQL limiting records returned, 288 transaction best practices, 303 using * wildcard, 288
SELECT statement concurrency strategies, 327
select tag, HtmlSelect, 129 selectable list controls, 152–155 Selectable property, MenuItem, 787 SelectCommand property
DataAdapter class, 334, 336 SqlDataSource, 370
SelectCommandType property, 370, 375 SelectCountMethod property, 425, 426 Selected event
page life cycle with data binding, 369 SqlDataSource, 378
Selected property, ListItem, 151, 154 SelectedDataKey property, 415, 416 SelectedDates property, 176 SelectedIndex property
DropDownList, 439 GridView, 415, 418 ListControl, 151
SelectedIndexChanged event GridView, 415, 417, 418
file-browsing application, 544 retrieving users, 930
ListControl, 152 SelectedIndexChanging event, 415 SelectedItem property, 151, 154 SelectedItemTemplate property, 445 SelectedNodeChanged event, 777, 779 SelectedNodeStyle property, 784 SelectedRowStyle property, 409, 415 SelectedValue property, DropDownList
editing with GridView template, 440 parameterized commands, 374
SelectedValue property, GridView editing field using lookup tables, 463 retrieving users from membership store,
929 SelectImageUrl property, 414 SelectIndexChanged event, 437 Selecting event
ObjectDataSource, 391 Page, 369 SqlDataSource, 377, 474
selecting records ObjectDataSource, 386–388
method parameters, 390–391 parameterized constructor, 388–389
■ INDEX
1595
SqlDataSource, 370–372 parameterized commands, 373–378
selecting rows, GridView, 414–418 selection mode, TreeNode, 777 SelectionChanged event, Calendar, 175 SelectionMode property, Calendar, 176 SelectIterator(Of T) class, LINQ, 565 SelectList class, MVC, 1401, 1402 SelectMany method, 587 SelectMethod property, 387 SelectNodes method, 652 selectors, CSS, 708 SelectQuery property, 370 SelectSingleNode method, 652 SelectText property, 414 self-signed certificate, creating, 848 send method, XMLHttpRequest, 1231 SendingMail event
CreateUserWizard, 921 PasswordRecovery, 914, 916
SendMailError event, 921 SeparatorImageUrl property, 787 SequentialAccess value, CommandBehavior,
291 Serializable attribute, 239, 558, 1007, 1009 Serializable value, IsolationLevel, 309, 310 serialization
Binary mode, 1007 class requirements for, 558 converting object into byte stream, 559 files, 558–561 NonSerialized attribute, 559 passing information between pages, 1172 profile serialization, 1005–1007 profiles and custom data types, 1009–1010 Xml mode, 1007
SerializationException class, 558 serializeAs attribute, web.config, 1003, 1006 Series class
binding chart to database table, 1180, 1181 binding chart to LINQ, 1187 binding chart to XML file, 1185 BorderWidth property, 1176 charts, 1175 ChartType property, 1175, 1180 Color property, 1176 DataBindXY method, 1181, 1185 DataBind method, 1187 Points collection, 1176 ShadowOffset property, 1176 XValueMember property, 1183 YValueMember property, 1183
Series collection, Chart, 1175, 1180
server sending client-side data to, 72
server callbacks, AJAX, 1254–1272 application services, 1264–1272 authentication service, forms, 1265–1267 placing web method in page, 1263–1264 profile service, 1270–1272 role service, 1267–1270 web method, creating, 1257–1260 web services, 1254–1263
calling, 1260–1263 creating, 1256–1257
Server Certificates feature configuring SSL in IIS, 847, 848
server control methods BaseValidator, 161 Control class, 126
server control properties AdRotator, 174 BaseValidator, 161 BulletedList, 156 Calendar, 175, 176 CheckBoxList, 152 CompareValidator, 163 Control class, 125 CustomValidator, 167 HtmlContainerControl, 127 HtmlControl, 127 HtmlInputControl, 128 ListControl, 151 RadioButtonList, 152 RangeValidator, 162 ValidationSummary, 168 WebControl, 138
server controls, 123, 1109–1120 see also custom server controls adding web parts to pages, 1323 ASP.NET AJAX, 124, 1272–1288
managing browser history, 1284–1288 partial rendering, 1273–1280 time consuming updates, 1281–1284 timed refreshes, 1280–1281
ASP.NET Dynamic Data controls, 124 client-side control IDs, 88 composite controls, 1136–1139 Control class, 1109 creating programmatically, 131–133 data controls, 124 derived controls, 1139–1142 encapsulation, 10 handling server-side events, 133–136 hierarchy of controls, 124–125 HTML server controls, 123, 126–136
■ INDEX
1596
HtmlContainerControl class, 127 HtmlControl class, 127 HtmlInputControl class, 128 inheritance hierarchy, 124 input validation controls, 157–172 list controls, 150–157 login controls, 124 navigation controls, 124 rich controls, 124, 172–177 Timer control, 1280–1281 Toolbox window, 35, 37 types of, 123–125 UpdatePanel control, 1273–1280 UpdateProgress control, 1281–1284 validation controls, 124, 157–172 web control classes, 138–139 web controls, 123, 136–150
extending, 1136–1142 web parts controls, 124 WebControl class, 137, 1109
Server Explorer window, Visual Studio, 35, 40, 281 Server object, 105, 111–113
HTML and URL encoding, 112–113 HtmlEncode method, 100 Transfer method, 745
Server Variables section, trace log, 115 Server View, IIS Manager, 797, 798 server-based controls see server controls ServerChange event, 133, 134–136
web control events, 147 ServerClick event, 133, 134–136
web control events, 147 server-side ASP.NET AJAX, 1251, 1253 server-side errors, handling, 1275 server-side events, handling, 133–136 server-side form tag, web controls, 140 ServerValidate event, 167 ServerVariables collection, 107 ServerVariables property, 107 Service Broker
cache notifications, 505 service references, Silverlight, 1510 ServiceReference elements, ScriptManager,
1260 services
ApplicationServices.dll assembly, 43 Services.dll assembly, 43 web services files, 36
Services property, 1264 Services section, ScriptManager, 1260, 1263 services, ASP.NET AJAX
application services, 1264–1272 authentication service, forms, 1265–1267
profile service, 1270–1272 role service, 1267–1270 web services, 1254–1263
Session collection passing information between pages, 1172
session compression, 233 session hijacking
persistent cookies, 872 session keys, 846
Kerberos authentication, 942 Session object, 105, 106
Abandon method, 257 accessing, 227 IsCookieless property, 265 losing session state, 257 web method accessing, AJAX, 1258
session state, 106, 255–266 architecture, 255–257 compression, 17, 263–264 configuring, 258–265 HTTP handlers, 227 HttpSessionState class, 257
methods, 258 properties, 257–258
losing, 257 securing, 265–266 state management
changes in ASP.NET 4, 233 disabling, 259 options compared, 235
tracking session ID, 256 web services, AJAX, 1258
Session State section, trace log, 114 session tickets, Kerberos, 942 Session_End method, 186 Session_Start method, 186 SessionID property, HttpSessionState, 258 SessionParameter tag, 375 sessionState element, web.config, 196
allowCustomSqlDatabase attribute, 263 compression, 263–264 compressionEnabled attribute, 263 configuring session state, 258–265 cookieless attribute, 264–265 cookieName attribute, 264 customProvider attribute, 263 enableCompression setting, 263 mode attribute, 259–263 regenerateExpiredSessionId attribute, 265,
266 sqlCommandTimeout attribute, 263 sqlConnectionString attribute, 261 stateConnectionString attribute, 260
■ INDEX
1597
stateNetworkTimeout attribute, 261 timeout attribute, 265
SessionStateModule class, 256 End event, 259
Set method, OutputCacheProvider, 487, 488 Set Next Statement command, Visual Studio, 66 set_errorHandled method, 1276 SetAccessControl method, 528, 529 SetAttributes method, 529 SetAuthCookie method, 872 SetCacheability method, 481 SetCurrentDirectory method, 528 SetExpires method, 481 SetFocusOnError property, 161 setInterval method, window, 1200 SetPropertyValue method, 1004 SetPropertyValues method, 1019, 1025 SetSessionStateBehavior method, 233 SetTarget method, Storyboard, 1506 SettingsContext object, 1024 SettingsPropertyCollection class, 1023, 1024 SettingsPropertyValue objects, 1024 SettingsPropertyValueCollection, 1023 SettingsProvider class
ApplicationName property, 1018 custom profile providers, 1017 GetPropertyValues method, 1018 SetPropertyValues method, 1019
SetValue method, Silverlight, 1484 SetZIndex method, Silverlight, 1483 SHA1 algorithm
machineKey element, 191 passwordFormat attribute, 869
shadow copy technique, 182 ShadowOffset property, Series, 1176 shared application variables, 268–270 shared locks, 308 shared methods, 322 Shared property, OutputCache, 704 SharePoint, 988 ShoppingCartTest.aspx, 1017 Short Date type format string, 408 ShouldPerformDivTableSubstitution property,
1122 Show Next Statement command, Visual Studio, 66 ShowCheckBox property, 782 ShowCheckBoxes property, 782 ShowDeleteButton property, 383 ShowDirectoryContents method, 543 ShowEditButton property, 437 ShowExpandCollapse property, 782 ShowFooter property, 404, 456 ShowGridLines property, 1488, 1489
ShowHeader property, 404, 453, 541 ShowMessageBox property, 168 ShowSelectButton property, 414 ShowStartingNode property, 758, 759 ShowSummary property, 168 ShowToolTips property, 756 SID (security identifier)
authentication, 841 valid Windows identities, 955
SideBarButtonClick event, Wizard, 746 SideBarButtonStyle property, 748 SideBarStyle property, 748 SideBarTemplate property, 749 side-by-side execution
using, application pools, 828 SignOut method, FormsAuthentication, 868,
872 Silverlight, 19, 1458–1461
add-on assemblies, 1474 animation, 1494–1507 animation classes, 1495 Application template, 1462 Canvas class, 1481 Canvas layout container, 1482–1487 class libraries, 1480–1481 compilation process, 1463–1464 controls, 1472 creating Silverlight solution, 1462–1469 custom controls using, 1514 d namespace prefix, 1475 designing page, 1470–1474 dragging circles, 1484–1487 elements, 1472–1473 entry page, 1465–1469 fine-tuning rows and columns, 1490–1491 Flash compared, 1457, 1459–1460 Grid class, 1481 Grid layout container, 1488–1494 handling events, 1479 layering elements in Canvas, 1483 layout containers, 1481–1494 MatrixTransform class, 1504 mc namespace prefix, 1475 mscorlib.dll assembly, 1481 namespaces, mapping, 1475 nesting layout containers, 1491–1492 object element parameters, 1467–1468 presentation namespace, 1475 Resources collection, 1496, 1506 retaining state in Silverlight application, 1485 RotateTransform class, 1503, 1504, 1505 ScaleTransform class, 1503 setting properties, 1476
■ INDEX
1598
SkewTransform class, 1503 spanning rows and columns, 1493 StackPanel class, 1481 StackPanel element, 1474, 1476 Storyboard class, 1495–1497 system requirements, 1461 System.Core.dll, 1481 System.dll, 1481 System.Net.dll, 1481 System.Windows.Browser.dll, 1481 System.Windows.dll, 1481 System.Xml.dll, 1481 TextBlock element, 1474 transform classes, 1503–1504 TransformGroup class, 1504, 1505 transforms, 1503–1507 TranslateTransform class, 1503 UpdatePanel control, 1469 User Control template, 1470 versions, 1457 viewing XAML pages, 1471 web services, 1507–1514
adding web reference, 1508–1510 calling, 1510–1511 configuring URL, 1511–1512 creating, 1508 cross-domain calls, 1512–1514
x namespace prefix, 1475 XAML, 1474–1476 XAML code-behind, 1477–1478 XAML namespace, 1475
Silverlight 4 Tools, 1458 Silverlight project
creating, 1462, 1469–1481 setting properties, 1476 XAML code-behind, 1477–1478
SimpleRole class, 1070, 1071, 1078 SimpleUser class
designing custom providers, 1070 implementing custom store, 1071, 1078 implementing provider classes, 1085, 1086,
1094 using salted password hashes, 1091
SingleRow value, CommandBehavior, 291 single-step debugging, Visual Studio, 64–66 Singleton pattern, 1072 single-value binding, 352–354 site map API, 762 site map model, 737 site map objects, 761–762 site maps, 751–773
adding caching, 770–772 adding custom information, 763–764
adding sorting, 770 authorization rules, 772 binding to, 754–755 breadcrumb navigation, 755–757 BuildSiteMap method, 766, 771 creating provider, 764–772 defining, 752–754 GetSiteMap stored procedure, 770 security trimming, 772–773 showing portion of, 757–761
skipping root node, 758 starting from current node, 758–759 starting from specific node, 759–761
SiteMapDataSource control, 751, 752 storing information in database, 764
Site name field, Add Web Site dialog, 820 Site.Master file
modifying, MVC application, 1385 SiteMap class, 762
defining site map, 752 siteMap element, web.config
creating site map provider, 765 defining site map, 752, 753
SiteMapDataSource class, 752 ShowStartingNode property, 758, 759 StartFromCurrentNode property, 758, 761 StartingNodeOffset property, 759, 760, 761 StartingNodeUrl property, 759, 760
SiteMapDataSource control, 368, 754 siteMapFile attribute, 760 SiteMapNode class, 762
ChildNodes property, 762, 769 creating site map provider, 768 properties, 762 retrieving custom attribute, 764
siteMapNode element defining site map, 752, 753 siteMapFile attribute, 760
SiteMapPath control, 755–757 ParentLevelsDisplayed property, 756, 761 properties, 756 styles and templates, 757
SiteMapProvider class, 753 adding caching, 770–772 adding sorting, 770 creating site map provider, 764–772 Initialize method, 765 storing site map information in database,
764 Sites item, IIS Manager, 798 Size property, FontInfo, 143 SkewTransform class, Silverlight, 1503
■ INDEX
1599
SkinID attribute, 716 applying themes dynamically, 721 creating multiple skins for same control,
715 skins
caution when specifying details, 717 images, 717 multiple skins for same control, 715–716 templates, 716 themes, 711–712
Slider class, Silverlight, 1472 SliderExtender control, AJAX, 1311 SlideShowExtender control, AJAX, 1312 sliding expiration
data caching, 492 slidingExpiration attribute, web.config, 861 slidingExpiration parameter
Insert method, Cache, 492 sln files, 59 smart tags, 30
repeated-value binding, 367 Wizard control, 745, 750
smarts MultiView control, 741
SmoothingMode property, 1152 SmtpClient class, 913 Snapshot value, IsolationLevel, 309, 310 SoapFormatter class, 559, 561 social security number (US)
regular expressions, 166 software, creating secure, 837–839
gatekeepers, 839–840 secure coding, 838–839 understanding threats, 837–838
SolidBrush class, 1160 Solution Explorer, Visual Studio, 35, 36–37
adding new files, 37 adding reference to custom controls, 1113 debugging JavaScript, 1197 Dynamic Data projects, 1421 support for user instance databases, 281
solution files, Visual Studio, 24, 39 projectless development, 1113
Sort method, GridView, 422 Sort property, DataView, 342, 343
sorting with SqlDataSource, 419 SortExpression property, GridView, 405, 419 sorting
adding, site maps, 770 ASP.NET 4 changes in data controls, 401 DataView class, 343–344 LINQ expressions, 570
Sorting event, GridView, 422 sorting GridView, 418–423
simultaneous selection, 421 with ObjectDataSource, 419–421 with SqlDataSource, 419
SortParameterName property, 420 source code files
project-based development, 59 source parameter, Silverlight, 1467 source view, Visual Studio, 28 spaces
replacing with nonbreaking spaces, 113 span tag, Label control, 139 SparseFile value, FileAttributes, 535 special characters
avoiding SQL injection attacks, 297 HTML entities, 112 InnerText property, 127 metacharacter matching, 164 URL encoding, 247
SpecialBuild property, FileVersionInfo, 538 SpeedRatio property, Silverlight, 1498 splashScreenSource parameter, 1468 split view, Visual Studio, 28, 29 SQL
installing and uninstalling databases, 890 LINQ to SQL, 14, 581 ROWNUMBER function, 427
SQL cache notifications, 504–505 SQL injection attacks, 294–297
avoiding, 296–297 parameterized commands, 297, 298 Select method, DataTable, 341 stored procedures, 297 validation controls, 866
SQL Profiler tool, 590 SQL queries
limiting records returned, 288 similarity to LINQ expressions, 567 using * wildcard, 288
SQL script injection, 297 SQL Server
cache invalidation, 771 configuring connection strings, 892 connection pooling, 283, 284 distributed transactions, 306 file-based store, 892
SQL Server Express installing database tables on, 891 user instance connections, 280
SQL Server Express 2008 R2, 280
■ INDEX
1600
SQL Server Express Edition, 887 creating database, 887, 888 creating profile tables, 999 file-based SQL Server store, 892
SQL Server provider, 275, 276 SQL Server Reporting Services, 26 SqlCacheDependency class, 505, 507 SqlCacheDependency property, 496 SqlClient namespace, 277 SqlClientFactory class, 311 sqlcmd.exe tool, 891 SqlCommand class, 515
see also Command class sqlCommandTimeout attribute, 263 SqlConnection class see Connection class sqlConnectionString attribute, 261 SqlDataAdapter class see DataAdapter class SqlDataReader class, 515
see also DataReader class binding chart to database table, 1179, 1180,
1181 SqlDataSource control, 368, 369–385
see also data source controls $ expressions, 355 accessing data source, 369 adding items to data-bound list, 397–400 automatic paging, 424 CacheDuration property, 373 CacheExpirationPolicy property, 373 caching with, 496, 497–499 configuring command in Properties
window, 370 ConflictDetection property, 380, 381, 383,
472 connection string, 370 data access without ADO.NET, 273 data binding, 372–373 data provider factories, 369 DataReader mode, 372 DataSet mode, 372 DataSourceMode property, 372, 419 DeleteCommand property, 370, 379, 383 DeleteCommandType property, 370 Deleted event, 378 Deleting event, 377 deleting records, 383 disadvantages of, 384–385 editing with GridView template, 438, 441 EnableCaching property, 373 error handling, 378 events, 377, 378 InsertCommand property, 370, 379, 384 InsertCommandType property, 370
Inserted event, 378, 384 Inserting event, 377 inserting records, 384 OldValuesParameterFormatString property,
381 pagination, 423 parameterized commands, 373–378 SelectCommand property, 370 SelectCommandType property, 370, 375 Selected event, 378 Selecting event, 377, 474 selecting records, 370–372 SelectQuery property, 370 sorting GridView with, 419 stored procedures, 375 Update method, 379 UpdateCommand property, 370, 379, 382, 441 UpdateCommandType property, 370 Updated event, 378 UpdateParameters collection, 379, 382 Updating event, 377, 383 updating records, 379–380
strict concurrency checking, 380–381 updating with stored procedures, 382–383
SqlDataSource tag defining parameter names in, 382
SqlDataSourceSelectingEventArgs class Command property, 377
SqlDataSourceStatusEventArgs class Exception property, 378, 384 ExceptionHandled property, 378
SqlDependency class, 507 SqlException class, 282 -sqlexportonly switch, aspnet_regsql.exe, 889 SqlMembershipProvider class, 883, 884
configuring membership providers, 893, 894 creating database, 885, 886, 887 file-based SQL Server store, 892 properties, 894–895 using membership API, 884
SqlProfileProvider class, 998–1017 anonymous profiles, 1015–1017 anonymous user log in, 1016–1017 configuring provider, 1001–1002 creating profile tables, 999–1000 custom data components, 998 custom data types, 1008–1012 defining profile properties, 1002–1003 managing automatic saves, 1010–1012 profile groups, 1007–1008 profile serialization, 1005–1007 profiles API, 1012–1014 profiles storing data, 997
■ INDEX
1601
serialization, 1009–1010 using profile properties, 1003–1005
SqlRoleProvider class, 980 properties, 979 Windows authentication, 988
SQLServer mode, sessionState element, 259, 261–263
SqlSiteMapProvider class Clear method, 771 creating SiteMapProvider, 765, 766, 767,
768, 770 SqlTransaction class, 306
see also Transaction class Save method, 310
SqlTypes namespace, 278 Src attribute, ASP.NET, 55 src attribute, img tag
single-value binding, 353 src attribute, JavaScript, 1194
downloading images asynchronously, 1204 Src attribute, Register directive
creating user control, 685 src property, Image, 1225, 1228 ssadd parameter, aspnet_regsql.exe, 262 SSL (Secure Sockets Layer), 844–850
asymmetric encryption, 846 asymmetric key pair, 845 binding configuration in IIS, 850 certificates, 845 configuring bindings for, 849 configuring in IIS, 847–850 encoding information with, 850 forms authentication, 857 private keys, 845, 846 public keys, 845, 846 requireSSL attribute, forms tag, 861 secret keys, 846 secure coding, 839 session keys, 846 symmetric encryption, 846 symmetric key, 846, 847
ssremove parameter, aspnet_regsql.exe, 262 sstype parameter, aspnet_regsql.exe, 262 ST (session ticket)
Kerberos authentication, 942 stack
get_stacktrace method, 1262 stacked image controls, 1143 StackPanel class, Silverlight, 1473, 1481, 1492,
1494 Orientation property, 1482
StackPanel element, Silverlight, 1474, 1476 Standard Toolbox tab, 37
standards, XML, 623 Start event, 186, 188
URL routing, 775 Start method, SqlDependency, 507 Start Page, IIS Manager, 797 @Start parameter, stored procedures, 426 Start Web site immediately option, Add Web
Site dialog box, 821 StartCap property, Pens, 1158 StartFigure method, 1157 StartFromCurrentNode property, 758, 761 StartingNodeOffset property, 759, 760, 761 StartingNodeUrl property, 759, 760 StartNavigationTemplate property, 749 StartNextButtonStyle property, 748 StartRowIndexParameterName property, 425, 427 starts-with function, XPath, 652 state
AcquireRequestState method, 185 control state, 1129–1131 HTTP handlers and session state, 227 InstallSqlState.sql script, 891 ReleaseRequestState method, 185 ScriptManager restoring page state, 1287 Session state, 106 storing state in URL, 1287–1288 view state, 72, 77–81, 1127–1129 ViewState property, controls, 1127
state management profiles compared, 995 web.config file, 201
state management, ASP.NET, 234–236 application state, 266–270 changes in ASP.NET 4, 233 cookies, 254–255 opt-in model of view state, 233 opt-in state management, 243 options compared, 234–236 partial session state, 233 session compression, 233 session state, 255–266
configuring, 258–265 securing, 265–266 selectively enabling, 233
transferring information between pages, 245–253
cross-page posting, 247–253 query string, 245–247
view state, 236–245 assessing, 241–242 security, 244–245 selectively disabling, 242–244 storing objects in, 239–241
■ INDEX
1602
state providers session state architecture, 256
stateConnectionString attribute, 260 stateless design
building data access component, 317 statelessness, cookies, 78 stateNetworkTimeout attribute, 261 StateServer mode, sessionState, 259, 260–261 static HTML tags, 31 Static value, ClientIDMode, 88, 90 StaticConnections, web parts, 1356, 1360 StaticDisplayLevels property, 790 StaticHoverStyle property, 790 StaticMenuItemStyle property, 790 StaticMenuItemTemplate property, 791 StaticMenuStyle property, 790 StaticObjects property, 258 StaticPartialCachingControl class, 702 StaticSelectedStyle property, 790 StaticSiteMapProvider class, 764
AddNode method, 769 creating site map provider, 765
StaticSubMenuIndent property, 790 Status Codes field
Application Warm-Up, IIS, 830 Status column
application pools, IIS, 827 status messages
JavaScript page processor, 1199 Step Into/Out/Over commands, Visual Studio, 66 StepXyx properties, Wizard, 748 StepType property, WizardStep, 743 Stop method, Storyboard, 1497 Stop Outlining option, Visual Studio, 46 storage location
state management options compared, 234, 235
store locations, 1034 stored procedure transactions, 303, 304–306 stored procedures, 299–301
avoiding SQL injection attacks, 297 building data access component, 320 custom pagination, 426–427 ExecuteNonQuery method, 301 ObjectDataSource, 426–427 passing null value to, 302 performance, 299 profiles, 1001 querying, LINQ to Entities, 587–589 security, 299 SqlDataSource, 375, 382–383 transaction best practices, 304 updating records, 382–383
StoredProcedure value, CommandType, 285, 286
StoreLocation enumeration, 1033, 1034 stores, 1071–1078
creating and adding users to, 1084–1088 storing data
profiles, 996–997 XML, 622
Storyboard class, Silverlight, 1495–1497 animating transforms, 1506 animation example, 1500 Completed event, 1499 methods, 1497 SetTarget method, 1506 Target property, 1501 TargetName property, 1495, 1496, 1497 TargetProperty property, 1495, 1496, 1501
stream classes, 546 BinaryWriter, 549 DeflateStream, 557 FileStream, 546 GZipStream, 557 XmlTextReader, 628 XmlTextWriter, 628
stream-based XML processing, 628–634 reading XML files, 632–635 writing XML files, 628–632
StreamReader class, 549 streams, 546
binary files, 549–550 compressing data, 557–558 converting serializable object into bytes,
559 reading and writing files with, 546–558 serialization, 558 text files, 547–549 uploading files, 550–552
StreamWriter class, 547, 548 strict concurrency checking
updating records, SqlDataSource, 380–381 strict doctype, XHTML, 83, 84 Strict value
mode attribute, xhtmlConformance element, 85
strict XHTML rendering web forms changes in ASP.NET 4, 71
Strikeout property, FontInfo, 143 String class
Replace method, 113 string concatenation, SQL statements, 838 String serialization option, web.config, 1006 String type, AJAX, 1294 StringBuilder class, 288, 289
■ INDEX
1603
StringCollection class Contains method, 1100
StringDictionary class, 1060 StringLengthAttribute class, MVC, 1407 strings
AddString method, 1157 connection strings, 278–281 DrawString method, 1154
style attributes creating custom controls, 1111 HTML server controls, 136 web controls, 140
Style collection, 130 style properties
GridView control, 408 manipulating HTML, JavaScript, 1196 web control supporting, 1115–1119
Style property, HtmlControl, 127 style rules
creating dynamically, 102 Silverlight entry page, 1467
Style Sheet toolbar, Visual Studio, 709 styles
applying to node levels, 784–785 applying to node types, 784 Calendar control, 176 configuring with Visual Studio, 411–412 CSS, 705–709 GridView control, 408–412 Login control, 902 Menu control, 789–790 SiteMapPath control, 757 TreeView control, 782–785 Wizard control, 748
StyleSheet property, HtmlHead, 102 StyleSheet property, Page, 719 stylesheets
anonymous access used by login page, 901 CSS, 705–709 transforming XML content, 659
styleSheetTheme attribute applying themes through configuration file,
718, 719 handling theme conflicts, 714
subdirectories CreateSubdirectory method, 531 determining total size information, 533
submit type, input tag, 129 SubmitButton ID
PasswordRecovery template, 916 Substitution control, 173
post-cache substitution, 482, 483, 484 Subtitle property, IWebPart, 1335
SuccessTemplate property, 914, 915, 916, 917 SupportsEventValidation attribute, 1242 svc files, 36 SwitchViewByIDCommandName field,
MultiView, 741 SwitchViewByIndexCommandName field, 741 symmetric encryption, 846 symmetric encryption algorithms, 1037–1038,
1043–1050 advantage/disadvantage of, 1037 brute-force attacks, 1037 key exchange, 1037 long-term key management, 1037
symmetric key, 846, 847 SymmetricAlgorithm class, 1035
GenerateKey method, 1045 SymmetricEncryptionUtility class, 1048–1050
AlgorithmName property, 1044 encrypting sensitive data, 1055 methods, 1045 ProtectKey property, 1043
SyncChanges method custom web part editor, 1352
Sys.Services property, AJAX, 1264 System value, FileAttributes, 535 System.Configuration.dll assembly, 43 System.Core.dll assembly, 43, 61, 1481 System.Data namespace, 277 System.Data.Common namespace, 277 System.Data.DataSetExtensions.dll assembly, 43 System.Data.dll assembly, 43 System.Data.Odbc namespace, 278 System.Data.OleDb namespace, 277 System.Data.OracleClient namespace, 277 System.Data.SqlClient namespace, 277 System.Data.SqlTypes namespace, 278 System.Diagnostics trace features, 119 System.dll assembly, 43, 1481 System.Drawing namespace, 1149 System.Drawing.dll assembly, 43 System.Drawing.Drawing2D namespace, 1149 System.Drawing.Imaging namespace, 1149 System.EnterpriseServices.dll assembly, 43 System.EventArgs object, 149 System.IO namespace, 527 System.Net.dll assembly, 1481 system.web section, web.config, 191, 192, 195–196
denying access to anonymous users, 951 elements, 195–196 IIS 7.x and forms authentication, 876
System.Web.ApplicationServices.dll assembly, 43 System.Web.dll assembly, 43 System.Web.DynamicData.dll assembly, 43
■ INDEX
1604
System.Web.Entity.dll assembly, 43 system.web.extensions section, web.config,
1264 System.Web.Extensions.dll assembly, 43, 61 System.Web.Services.dll assembly, 43 System.Web.UI.Control class
hierarchy of server controls, 124 System.Web.UI.HtmlControls namespace, 126 System.Web.UI.WebControls namespace, 137 System.Web.UI.WebControls.ListControl class,
151 system.webServer element, web.config, 192,
196 registering HTTP handlers, 218, 219
System.Windows.Browser.dll assembly, 1481 System.Windows.dll assembly, 1481 System.Xml.dll assembly, 43, 1481 System.Xml.Linq.dll assembly, 43 SystemOperator role, WindowsBuiltInRole, 953
■T T navigation property
one-to-one relationships, 587 TabContainer control, AJAX, 1313 TabControl class, Silverlight, 1473, 1474 TabIndex property, WebControl, 138 Table control, 139 Table property, DynamicDataRoute, 1435,
1437, 1439 table relationships
DataAdapter and DataSet, 337–339 table tag
HtmlTable, 129 Table control, 139
TableCell control, 139 TableDirect value, CommandType, 285 TableRow control, 139 tables
binding chart to, 1179–1181 creating profile tables, 999–1000 creating server controls, 131 DataTable class, 333 designing web pages with HTML tables, 31 master pages with CSS layout and, 727–730 multiple tables and relationships, 337–339 relationships between profile tables, 1000 route discovery by, 1439 used for profiles, 999–1000
Tables collection, DataSet, 333 Tables property
DataSet, 332 HttpBrowserCapabilities, 1124
tabs Add Tab option, 38 Delete Tab option, 38 metacharacter matching, 164 Rename Tab option, 38 Toolbox tabs, 37
Tabs settings, HTML, 33 Tag Specific Options button, Visual Studio, 33 TagName attribute, Register directive, 685, 1112 tagName property
manipulating HTML elements, 1196 TagName property, HtmlControl, 127 TagPrefix attribute, Register directive, 685, 1112 tags
adding/removing metadata tags, 102 connecting control tags to page variables,
56–57 converting page to user control, 686 HtmlGenericControl class, 129 InnerHtml property, 127 InnerText property, 127 static HTML tags, 31 well-formed XML, 624 XHTML compliance, 82
target attribute XHTML compliance, 82
Target Location field, Publish Web dialog, 816 Target property
AdRotator, 174 MenuItem, 787 Storyboard, 1501 TreeNode, 778
TargetControlID property, 1307 targetFramework attribute, 195 TargetName property, Silverlight, 1495, 1496,
1497 TargetProperty property, Silverlight, 1495, 1496,
1501 Task List window, Visual Studio, 35, 38–40 tasks
web part tasks, 1330–1338 td tag
HtmlTable control, 129 TableCell control, 139
TDS (Tabular Data Stream), 276 team collaboration
projectless development, 59 Team Explorer window, Visual Studio, 35 templated column
editing with GridView, 437 TemplateField column
GridView template, 403, 430, 611, 612, 613 ListView template, 445
■ INDEX
1605
templates ChangePassword, 917 CreateUserWizard, 919 creating projectless website, 25–26 DetailsView, 451 Dynamic Data websites, 1422–1432
creating page template, 1423–1424 customizing field templates, 1429–1432 editing default templates, 1422–1423 entity templates, 1424–1429
FormView, 451, 454 GridView, 379, 430–444 ListView, 444–445 Login control, 905–907 LoginView, 911 Menu control, 791–793 PasswordRecovery, 914–917 SiteMapPath, 757 skins, 716 Visual Studio templates, 86 Wizard control, 749–750
LayoutTemplate property, 751 XML data binding with, 669 XPath data binding expressions, 669
Temporary value, FileAttributes, 535 test-driven development
ASP.NET MVC, 18 testing data access component, 328–330 text
CreateText method, 529, 532 DataTextField property, 152 DataTextFormatString property, 152 GridView styles, 409 InnerText property, 127 OpenText method, 529, 532 ReadAllText method, 529 WriteAllText method, 529
Text attribute, 1119 text encoding, 548 text files
streams, 547, 549 Text property
BaseValidator, 161 custom server controls in Visual Studio, 1118 Label, 95, 353 LiteralControl, 99 MenuItem, 787, 791 postbacks and change events, 1131 TreeNode, 778 validating controls, 159 web controls, 140
view state, 1127, 1129 text type, input tag, 129
Text value, CommandType, 285, 286 Text.ascx, Dynamic Data, 1450 Text_Edit field template, Dynamic Data, 1431 Text_Edit.ascx template, Dynamic Data, 1430 TextAlign property, list controls, 153 textarea tag, HtmlTextArea, 129 TextAreaFor method, MVC, 1396 TextBlock class, Silverlight, 1472 TextBlock element, Silverlight, 1474 TextBox class, Silverlight, 1472 TextBox control, 139
AutoCompleteExtender control, 1305 MaxLength property, 296 postbacks and change events, 1131 TextChanged event, 1138
TextBoxFor method, MVC, 1396, 1400 TextBoxStyle property, 902 TextBoxWatermarkExtender control, AJAX,
1312 TextChanged event
handling web control events, 147, 1011 TextBox control, 1138 TitledTextBox, 1138
TextRenderingHint property, 1152 TextureBrush class, 1160 TGT (ticket-granting ticket)
Kerberos authentication, 942 th tag, HtmlTableCell control, 129 Thawte, 845 Theme attribute, Page directive
applying themes, 712 through configuration file, 719
handling theme conflicts, 714 Theme property, Page, 719 Themeable attribute, 716 themes, 705, 710–721
adding, 712 App_Themes directory, 183, 711 applying, 712–713
dynamically, 719–721 through configuration file, 718–719
ASP.NET 2.0, 13 EnableTheming property, 715 folders, 711 global themes, 711 handling theme conflicts, 714–715 local themes, 711 precedence, 714 reusing images, 717 skins, 711–712
multiple skins for same control, 715–716 skins with templates and images, 716–717 using CSS in, 718
■ INDEX
1606
Thread class, 515 ThreadPool class
QueueUserWorkItem method, 515 threads
asynchronous pages, 512, 513 multithreading, 9
thread-safety, data caching, 491 threat modeling, 838 thumbnails
downloading images asynchronously, 1205 passing information to dynamic images,
1164, 1165, 1166 placeholders as temporary images, 1207
Tick event, Timer control, 1280 Ticket property, FormsIdentity, 859 tickets
forms authentication, 853 Kerberos authentication, 942
time CreationTime property, 531 GetCreationTime method, 529 GetLastAccessTime method, 529 GetLastWriteTime method, 529 LastAccessTime property, 531 LastWriteTime property, 531
time and date format strings, 408 time-based animation, Silverlight, 1494 TimeDisplay control, 696
adding properties, 688, 689 dynamically loading user controls, 698 handling events, 686 partial caching, 702 portal frameworks, 699
timeout attribute forms tag, web.config, 861
persistent cookies, 872 sessionState element, 265
Timeout property, HttpSessionState, 258 timeouts
multiple asynchronous tasks and, 523–525 Timer control, AJAX, 1280–1281 timestamp-based concurrency, 327, 328 timestamps
concurrency conflicts, GridView, 470 strict concurrency checking, 381
timing Trace object, 114
title HtmlTitle class, 130
Title attribute, Page directive, 725 Title property
HtmlHead, 102 IWebPart, 1336, 1337
WebPart, 1332, 1333 WizardStep, 743
TitledTextBox control, 1136, 1137, 1138 TitleIconImageUrl property, 1336, 1337 TitleImageUrl property, 1338 @TitleOfCourtesy parameter, 441 TitlesOfCourtesy property, 439 TitleText property, Login, 903 TitleTextStyle property, 902 TitleUrl property
IWebPart, 1336, 1337 WebPart, 1333, 1350
To property, Animation, Silverlight, 1498 ToBase64String method, 1048, 1061 TODO comment/token tag
Task List, Visual Studio, 35, 39, 40 ToggleButtonExtender control, AJAX, 1312 Token property, WindowsIdentity, 954, 960 token tags
HACK, 40 TODO, 39, 40 UNDONE, 40
tokens authentication, 841 forms authentication, 853 programmatic impersonation, 960
getting tokens, 960–961 toolbar attribute, pop-ups, 1216 Toolbox window, Visual Studio, 35, 37–38
adding reference to controls, 1114 custom server controls, 1113–1115 Toolbox tabs for ASP.NET project, 37
tools advantages of XML, 623
ToolTip property MenuItem, 787 TreeNode, 778 WebControl, 138
Top property, Canvas animation example, 1502 dragging circles, Silverlight, 1487 positioning elements, Silverlight, 1482
ToString method, EncryptedQueryString, 1060, 1061, 1062
TotalFreeSpace property, 534 TotalSize property, DriveInfo, 534 ToTraceString method, ObjectQuery, 589, 590 ToXmlString method, 1051, 1052 tr tag
HtmlTableRow control, 129 TableRow control, 139
■ INDEX
1607
Trace attribute, Page directive, 115 assessing view state, 241 master pages, 726
trace element, web.config, 119, 196 application-level tracing, 118
Trace Information section, 114 trace log sections, 114 Trace object, 105, 114–120
IsEnabled property, 115 TraceFinished event, 117 TraceMode property, 115 Warn method, 116 Write method, 116
trace requests, View Details link, 118 TraceContext class, 114 TraceFinished event, 117 TraceHandler class, 218 traceMode attribute
Page directive, 115 web.config file, 118, 119
TraceMode property, 115 tracepoints, Visual Studio, 68 tracing
application-level tracing, 118–119 enabling, 115 event handler receiving trace messages, 117 System.Diagnostics features, 119 trace element options, web.config, 119 viewing information, 118 Visual Studio debugging, 115 Web Development Helper tool, 120
trademarks LegalTrademarks property, 538
@@TRANCOUNT variable, 306 Transaction class, 306
BeginTransaction method, 306, 307 Commit method, 306, 307 Rollback method, 306, 310 Save method, 310
Transaction property, Command, 307 transactions, 302–310
ACID properties, 302 application scalability, 303 ASP.NET web applications, 303–308 BeginTransaction method, 306, 307 client-initiated, 303, 306–308 COM+ transactions, 303 distributed transactions, 306 DTC, 306 errors in, 305, 306 exclusive locks, 308 IDbTransaction interface, 306 isolation levels, 308–309
locks, 308 OleDbTransaction class, 306 OracleTransaction class, 306 pessimistic concurrency, 328 promotable transactions, 304 RAISERROR statement, 306 savepoints, setting, 310 shared locks, 308 SqlTransaction class, 306 stored procedure transactions, 303, 304–306 try/catch structure, 305
Transfer method HttpResponse, 109 HttpServerUtility, 111, 250
applying themes dynamically, 719 moving between pages, 110, 111
Server object, 745 TransferRequest method, HttpResponse, 109 Transform attribute, web.config, 807
Insert value, 808 Remove value, 809 Replace value, 809
transform classes, 1503–1504 Transform method
GraphicsPath, 1157 XslCompiledTransform, 661
Transform property, XmlDataSource, 674 TransformFile property, 674 TransformGroup class, Silverlight, 1504, 1505 transforming web.config file
web deployment approach, 806–810 inserting elements, 808 removing elements, 809–810 replacing sections, 809 setting attributes, 807–808
transforming XML content, 659–665 LINQ to XML, 663–665 Xml control, 662–663 XslCompiledTransform, 661–662
TransformPassword method, XmlMembershipProvider
implementing provider classes, 1087 using salted password hashes, 1091, 1092 validating users on login, 1090, 1091
transforms, Silverlight animation, 1503–1507 MatrixTransform class, 1504 RenderTransform property, 1504, 1505 RenderTransformOrigin property, 1504 RotateTransform class, 1503, 1504, 1505 ScaleTransform class, 1503 SkewTransform class, 1503 TransformGroup class, 1504, 1505 TranslateTransform class, 1503
■ INDEX
1608
TransformSource property, Xml, 662 transitional doctype, XHTML, 83 Transitional value, 85 Translate method, 955 TranslateTransform class, 1503 TreeNode class, 777–779
Checked property, 782 Depth property, 781 Expanded property, 777 NavigateUrl property, 777, 778 navigation mode, 777 PopulateOnDemand property, 780 populating nodes on demand, 780–782 properties, 778 SelectedNodeChanged event, 777, 779 selection mode, 777 ShowCheckBox property, 782
TreeNode tags, 777 TreeNodeBinding elements, 673 TreeNodeDataBound event, 763 TreeNodePopulate event, 780, 781 TreeNodeStyle class, 782 TreeView control class, 776–786
adding TreeNode programmatically, 777 AutoGenerateDataBindings property, 672 binding to site map, 754 CollapseImageUrl property, 782, 785 ExpandDepth property, 777 ExpandImageUrl property, 782, 785 filling in on-demand nodes, 780 filling with query results, 778 hierarchical binding, 672–674 HoverNodeStyle property, 784 images, 785–786 ImageSet property, 786 LeafNodeStyle property, 784 LevelStyles collection, 784 MaxDataBindDepth property, 777 Menu control compared, 789 NodeIndent property, 782 NodeStyle property, 784 NoExpandImageUrl property, 782, 785 ParentNodeStyle property, 784 PopulateNodesFromClient property, 780 populating nodes on demand, 780–782 RootNodeStyle property, 784 SelectedNodeStyle property, 784 ShowCheckBoxes property, 782 ShowExpandCollapse property, 782 styles, 782–785
applying to node levels, 784–785 applying to node types, 784
TreeNodePopulate event, 780, 781
TreeViewImageSet enumeration, 786 TreeViewNode class
ImageUrl property, 785 TReference navigation property, 587 TriangleHotSpot class, 1149 triggering postbacks, 1134–1136 triggers
UpdatePanel control, 1278–1279 Triple DES (3DES)
machineKey element, 190, 191 TripleDES abstract algorithm class, 1037 TripleDESCryptoServiceProvider class, 1037 Truncate value, FileMode, 546 Trusted Root Certification Authorities, 846,
1034 try/catch structure, transactions, 305 type attribute
httpHandlers element, 221 properties element, web.config, 1003 script block, JavaScript, 1193
type converter, 689 Type property
CompareValidator, 163 HtmlInputControl, 128 HttpBrowserCapabilities, 1123 RangeValidator, 162
type safety, 8 typed DataSets
creating custom web parts, 1340–1341 LINQ, 580
TypeName property, ObjectDataSource, 387 types
base types, JavaScript, 1294–1295 .NET framework, 3
■U -U switch, aspnet_regsql.exe, 889, 999 UIHint attribute, 1450 Underline property, FontInfo, 143 Underused value, CacheItemRemovedReason,
504 Undo method,
WindowsImpersonationContext, 960, 961
UNDONE token tag, 40 unhandled exceptions
handling errors, UpdatePanel, 1275 Unicode
text encoding, 548 Uniform Resource Locator see URL Union method, PrincipalPermission, 974 UnionIterator(Of T) class, LINQ, 565
■ INDEX
1609
UniqueID property, web controls, 1132, 1135 Unit structure, web controls, 141 UnitType enumeration, 141 Universally Unique ID (UUID), 955 Unload event, Application, 1298 Unload event, Page, 94, 95 UnLock method, application state, 267 UnlockUser method, 931 UnprotectSection method, 209 Update command
concurrency strategies, 327, 328 editing FormView, 456
update database operations, 599 Update link
updating records, SqlDataSource, 379 Update method
DataAdapter, 334 SqlDataSource, 379
UPDATE statement detecting concurrency conflicts, 469, 470
UpdateCommand property DataAdapter, 334 SqlDataSource, 370, 379, 382, 441
UpdateCommandType property, 370 Updated event, 369, 378 UpdateEmployee method, 325, 327, 328 UpdateEmployee stored procedures, 320 UpdateMethod property, 387, 392 UpdateMode property, 1276, 1278, 1280 UpdateModel method, MVC, 1384 UpdatePanel control, AJAX, 1245, 1252
conditional updates, 1276–1277 Controls collection, 1273 GridView control, 1279 handling errors, 1275–1276 interrupted updates, 1277–1278 managing browser history, 1284 optimizing, 1279–1280 PageRequestManager class, 1299 partial rendering with, 1273–1280 purpose of, 1273 RenderMode property, 1274 Silverlight using, 1469 Timer triggering asynchronous postback,
1280, 1281 triggers, 1278–1279 UpdateMode property, 1276 UpdateProgress control, 1281, 1282, 1283 value of asynchronous login method, 1266
UpdatePanelAnimationExtender control, AJAX, 1274, 1312
UpdateParameters collection, SqlDataSource, 379, 382
UpdateProgress control, AJAX, 1281–1284 AssociatedUpdatePanelID property, 1283 cancel button, 1283–1284 interrupted updates, UpdatePanel, 1278 ProgressTemplate property, 1283
UpdateProgressMeter function, 1200, 1201 UpdateRequestCache event, 185 updates
application updates, 181 conditional updates, 1276–1277 interrupted updates, 1277–1278
UpdateUser method, 928, 931 updateUserProcedure attribute, 1020 Updating event
ObjectDataSource, 394 page life cycle with data binding, 369 SqlDataSource, 377, 383
updating records ObjectDataSource, 392–393
updating with data object, 393–396 SqlDataSource, 379–380
strict concurrency checking, 380–381 updating with stored procedures, 382–383
uploading files streams, 550–552
URIs (universal resource identifiers) XML namespaces, 625
URL (Uniform Resource Locator) storing state in, 1287–1288
URL authorization, 965–972 authorization rules, 966–972 controlling directory access, 969–970 controlling file access, 970 controlling role access, 970–972 controlling user access, 967–969
URL authorization, IIS 7.x, 989 native and managed modules, 990
URL encoding, 112–113, 247 URL mapping, 774, 774–775 Url property, HttpRequest, 107 Url property, PopUp, 1217 URL routing, 774, 775–776 UrlAuthorization module, 991, 992, 993 UrlAuthorizationModule class, 965, 968, 993
authorization and roles in IIS 7.x, 988, 990 UrlDecode method, 111, 247 UrlEncode method, 111, 113, 1060 urlMappings element, web.config, 774 UrlReferrer property, 107 URLs
changing URL format, routes, 1435 configuring web service URL, 1511–1512 defaultUrl attribute, 862
■ INDEX
1610
DynamicDataRoute class, 1433 encrypting query string, 1059–1064 friendly URLs, 774 tracking session ID, 257 wrapping query string, 1060–1063
URNs (uniform resource names), 625 UseCookies value
cookieless attribute, web.config, 870 HttpCookieMode enum, 264
used space, DriveInfo class, 533 UseDeviceProfile value
cookieless attribute, web.config, 861, 870 HttpCookieMode enum, 264
user code initialization, 92 user concurrency, XmlDocument, 636 user control files, ASP.NET, 36 user controls, 683–686
adding code to, 686–697 adding events, 693–696 adding properties, 687–689 ascx files, 683, 684, 685 code-behind files, 683 Control directive, 684 converting page to, 686 creating, 684–686 dynamically loading, 697–701 exposing inner web control, 696–697 handling events, 686–687 implementing web parts through, 1339 partial caching, 701–704 portal frameworks, 698–701 sharing cached controls, 704 standardizing website layout, 721 using custom objects, 690–692 VaryByControl attribute, 702–704 web pages compared, 684 web parts, 1364–1367
user information, forms authentication, 855, 856
user input, secure coding, 838 user instance connections, 280–281
SQL Server Express, 280 user instance databases
attaching, 280 Visual Studio support for, 281
User Instances value, connection string, 280 user interface
dynamic user interface, 74–75 elements, HTML server controls, 136
User object, 105, 114 accessing roles programmatically, 986 accessing Windows-specific functionality, 952 IsInRole method, 986
user profiles see profiles User property, 951, 952, 954 User role, WindowsBuiltInRole, 953 user tasks, Task List window, 39 UserAgent property, 107, 1123 user-agent string
browser type detection, 1122 UserControl class, 684
layout containers, Silverlight, 1481 UserControl element, Silverlight, 1488 UserControlHost web part, 1367 UserControlHostPart class, 1366, 1367 UserHostAddress property, 107 UserHostName property, 107 UserIsOnlineTimeWindow property, 1095 UserLanguages property, 107 UserLookupError event, 914 UserName ID
CreateUserWizard template, 920 Login template, 907 PasswordRecovery template, 916
UserName property, Login, 903 UserNameLabelText property, 903 UsernameRequiredErrorMessage property, 903 UserNameTemplate property, 914, 915, 916 users
accessing Windows user information, 951–957 IdentityReference class, 955–957 WindowsIdentity class, 953–955 WindowsPrincipal class, 952–953
adding to roles, 981 anonymous user log in, 1016–1017 aspnet_Users table, 1000 authenticating, membership API, 884, 897 configuring membership in IIS 7.x, 925 controlling access, 967–969 CreateUserWizard control, 918–923 creating and adding to stores, 1084–1088 creating, membership API, 884, 896–897,
931–932 deleting, membership API, 932 denying access to anonymous users, 950–951
forms authentication, 863–864 losing session state, 257 membership API, 881 multiple users accessing files, 552–557 profiles, 995–998
anonymous profiles, 1015–1017 retrieving from membership store, 928–930 updating in membership store, 931 validating on login, 1088–1091 validating, membership API, 932
Users property, 1075
■ INDEX
1611
UserStore class CreateUser method, 1084, 1088 implementing custom store, 1072, 1073,
1074, 1076, 1078 designing custom providers, 1070 GetUser method, 1093 GetUserByName method, 1093 implementing provider classes, 1082, 1084,
1088, 1093 UseUri value
cookieless attribute, web.config, 870 HttpCookieMode enum, 264
using statement importing namespace with, 45 releasing connections promptly, 282
UtcLastModified property, 508 UTF-16 Unicode encoding, 548 UTF-7 Unicode encoding, 548 UTF-8 encoding class, 1048 UTF-8 Unicode encoding, 548
■V Validate method
BaseValidator, 161, 169 Extensions class, 658 Page class, 171, 867 using validators programmatically, 169
ValidateEmptyText property, 168 ValidatePassword method, 1084 validateRequest attribute, web.config, 1212 ValidateRequest property, Page directive, 1211 ValidateUser method
Membership class, 899, 900, 932, 1088 XmlMembershipProvider, 1095
ValidateUserInternal method, 1089, 1091, 1093 ValidateUserName method, 1084 validating data, MVC, 1403–1408
adding validation annotations, 1406–1408 validating XML content, 655–659
XDocument, 658–659 XmlDocument, 656–658
validation ASP.NET web forms, 92 CausesValidation property, 159 cross-page posting, 252–253 customizing, extensibility methods,
1454–1456 data fields, Dynamic Data, 1451–1455
requiring field value, 1451–1452 specifying valid range, 1452
disabling event validation, Ajax, 1242–1243 editing with GridView template, 437
EntityDataSource control, 613–614 event validation, 298 profiles, 998 request validation, 1210–1215 validating users on login, 1088–1091 XHTML compliance, 86–87
validation controls, 124, 157–172 avoiding SQL injection attacks, 296 BaseValidator class, 160–162 CompareValidator, 158, 163 creating custom login page, 864 cross-page posting and validation, 252 CustomValidator, 158, 167–168 RangeValidator, 158, 162 RegularExpressionValidator, 158, 163–166 RequiredFieldValidator, 158, 162 SQL injection attacks, 866 using validators programmatically, 169–170 validation groups, 170–172 validation process, 159–160 ValidationSummary, 158, 168 Wizard control, 751
validation groups, 170–172 validation helper methods, MVC, 1406 Validation settings, HTML, 33 Validation Toolbox tab, 37 ValidationAttribute class, MVC, 1407 ValidationEventHandler event, 657 ValidationExpression property, 163, 866 validationFailureIndex argument, 1214 ValidationGroup property, 161, 170 validationKey attribute, machineKey, 190 ValidationMessageFor method, MVC, 1405 ValidationProperty attribute, 158 ValidationSummary control, 158, 168 ValidationSummary method, MVC, 1405 validator controls see validation controls ValidatorCalloutExtender control, AJAX, 1312 Validators collection, Page, 169 ValidatorTextStyle property, Login, 902 Value property
CustomValidator, 167 DictionaryStructure, 360 HtmlInputControl, 128 HtmlInputText, 130 IdentityReference, 956 manipulating HTML elements, 1196 MenuItem, 787 repeated-value binding, 360 single-value binding, 353 TreeNode, 778 validating list controls, 158 XElement, 645
■ INDEX
1612
value-of command transforming XML content, 660
ValueToCompare property, 163 var keyword
OOP in JavaScript, 1290 variable highlighting, Visual Studio, 50 variable tracking windows
debugging, Visual Studio, 67–68 variables
automatic variables, 320 shared application variables, 268–270
VaryByControl attribute, 702–704 VaryByCustom attribute, 480 VaryByHeader attribute, 480 VaryByParam attribute, 477, 478, 479, 485
partial caching, 702 VaryByParameter property, 702 VB see Visual Basic vb files, 36, 53, 56, 59, 1256 vbproj files, 22, 59 vbproj.user files, 59 VBScript, 1190 VBScript property, 1124 verb attribute, httpHandlers, 221 verbs
custom verbs and web parts, 1363–1364 verbs attribute, URL authorization, 966 Verbs property, WebPart, 1333, 1363 VerifyingAnswer event, 914 VerifyingUser event, 914 VeriSign, 845, 847, 1034 Version property, HttpBrowserCapabilities,
1124 versions, 537 VerticalPadding property, 782 View Code button, Visual Studio, 41 View control, 173 view controls
MultiView, 738–742 Wizard, 742–751
view data, adding, MVC, 1396–1397 View Designer button, Visual Studio, 41 View Details link, trace requests, 118 View method, MVC
action results, 1409, 1410, 1412 adding to model, 1401 creating controller, 1382
View Source command, web browser, 80 view state, 72, 77–81, 236–245, 1127
assessing, 241–242 binding DataSet to control, 337 control property, 78 controls, 1127–1129
cross-page posting, 247–253 decoding, 80, 81 enableViewState attribute, 243 EnableViewState property, 125, 243, 244,
1129 enableViewStateMac attribute, 244 EnableViewStateMAC property, 244 encrypting, 245 hash codes, 244, 245 implementing IWebPart, 1337 limitations of, 245 Load event, 92 LoadViewState method, 1129 page property, 78 placing web method in page, 1263 query string, 245–247 RegisterRequiresViewStateEncryption
method, 245 SaveViewState method, 1129 saving and restoring text using, 238 secure coding, 839 security, 244–245 selectively disabling, 242–244 Serializable attribute, 239 state management options compared, 234 storing objects in, 239–241 transferring information between pages,
245–253 turning on/off, 243 UpdatePanel, 1279
view state chunking, 81 View tag, MultiView, 738 View window, Visual Studio, 34 ViewChanged event, LoginView, 912 ViewChanging event, LoginView, 912 ViewData collection, MVC
adding to model, 1401, 1402 adding view data, 1397
ViewName property, 1433, 1436 ViewResult class, MVC, 1409, 1410 views
DataView class, 342–350 DefaultView property, 343 designing web pages with Visual Studio, 28 MultiView control, 738–742 pages with multiple views, 738–751 TreeView control, 776–786 Wizard control, 742–751
Views folder, MVC, 1378 views, MVC, 18, 1377
adding view data, 1396–1397 creating index view, 1380–1381 creating, 1382–1385
■ INDEX
1613
customizing, 1393–1397 modifying, 1394–1396
ViewState collection, 236, 1127 ViewState property, 236, 1127, 1128 ViewStateEncryptionMode property, 245 ViewStateMode property, 243, 244 virtual directories, 179, 821, 822–825 VirtualFile class, 823 VirtualPathProvider class, 822–825
AppInitialize method, 823, 824 DirectoryExists method, 825 FileExists method, 823, 824 GetCacheDependency method, 825 GetFile method, 823, 824 GetFileHash method, 825
Visible property Control class, 125 GridView, 405 Panel, 738
VisibleMonthChanged event, 175 VisibleWhenLoggedIn property, 904 Visual Basic
anonymous types feature, 568 lambda expressions, 574, 576 Lock statement, 269
Visual Studio, 21–22 Add Reference dialog box, 44 adding assembly references, 42–45 adding themes, 712 adding web reference, 1509 Apply Styles window, 35, 708, 709 applying stylesheet rules, 709 ASP.NET 4, 17 ASP.NET code model, 52–58 ASP.NET templates, 25, 26 Attach to Process dialog box, 1103 changing formatting options, 22 Choose Location dialog box, 26 Class View window, 35 code editor, 41–52 code-behind model, 53, 54, 55
connecting events to handlers, 57–58 connecting files to pages, 55–56 connecting tags to variables, 56–57
code-behind view, 41 Command and Parameter Editor dialog, 376 Configure Data Source Wizard, 396 configuring GridView styles with, 411–412 Conversion Wizard, 62 Copy Web tab, 817, 818 creating master pages, 722–724 creating user control, 684, 685
creating web part pages, 1319 creating web service, AJAX, 1256 Crystal Reports Web Site template, 26 CSS Outline window, 707 CSS Properties window, 709, 710 custom controls, Toolbox support for,
1113–1115 custom server controls, 1118 data source controls, 368 Debug toolbar, 65 debugging, 22, 63–68
breakpoints, 68 variable tracking windows, 67–68
debugging JavaScript, 1196, 1197 default doctype, 86 default editor for files, 37 defining personal formatting rules, 32 designing web pages, 28–34
absolute positioning, 29 HTML tables, 31 smart tags, 30 static HTML tags, 31 structuring HTML markup, 32–34
design-time support, 1114 Document window, 35, 37 draggable document windows, 52 Dynamic Data Entities Web Site template,
26 editing GridView templates in, 433 Empty Web Site template, 25 Error List window, 35, 38–40 error underlining, 48 filtering, 49–50 Format HTML on Paste option, 33 Format Selection command, 33 HTML Formatting settings, 33 HTML General settings, 33 HTML Miscellaneous settings, 33 HTML Tabs settings, 33 HTML Validation settings, 33 HTTP modules, 228 ImageMap designer, 1144 inline code model, 53, 55 integrated web server, 21 IntelliSense, 47 launching custom HTTP handler, 221 Macro Explorer window, 35 Manage Styles window, 35, 709 member list, 46–47 migrating websites from previous versions,
61–63 models for coding web pages, 52
■ INDEX
1614
Modify Style dialog box, 31 modifying stylesheet rules, 710 multilanguage development, 22 multitargeting, 24 MultiView control, 739 naming syntax for source code file, 56 Navigate To window, 51 navigation tools, 50–51 New Project dialog box, 60 New Web Site dialog box, 23 Option Infer setting, 568 Options dialog box, 32, 33 outlining, 45–46 PageFlow example, 94 positioning windows, 35 project management events, 37 project-based development, 22, 59–60
creating web projects, 60–61 projectless development, 23, 1113
creating projectless website, 23–27 Properties window, 28, 29, 35 Publish dialog box, 811 Publish Web dialog box, 812 Reports Web Site template, 26 Search terms box, 51 Server Explorer window, 35, 40 Solution Explorer window, 35, 36–37 solution files, 24 Style Sheet toolbar, 709 support for user instance databases, 281 Tag Specific Options button, 33 Task List window, 35, 38–40 Team Explorer window, 35 templates, 86 Toolbox window, 35, 37–38 variable highlighting, 50 vbproj project file, 22 View window, 34 WCF Service template, 26 Web Development Helper tool, 68–70 web projects, 58–63 Web Site template, 25 websites and web projects, 22 XHTML validation, 86, 87 XML visualizer, 647
Visual Studio 2010, 21 creating MVC application, 1378 draggable document windows, 52 filtering, 49–50 improvements, 48–52 IntelliSense, 49–50 Navigate To window, 51
navigation tools, 50–51 reference assemblies, 24 Silverlight 4 Tools, 1458 variable highlighting, 50
VolumeLabel property, 534
■W W3C (World Wide Web Consortium)
XHTML validation, 87 XML, 622
wait indicator UpdateProgress control, 1282
WaitForMessage method, 510 Warn method, Trace, 116 Warp method, GraphicsPath, 1157 WAT (Website Administration Tool), 202–204
configuring access rules with, 982 creating users, 896 debugging using, 1103–1104 encrypting sensitive data, 1055 setting up security in, 884, 885 using custom provider classes, 1102
Watch window, Visual Studio, 67–68 WCF (Windows Communication Foundation),
14 WCF Service template, 26 web services, 36, 180, 1255
Silverlight, 1460, 1508 Web Application, ASP.NET, 60 web applications
DataSet and, 331–332 security, 837, 840–844
web controls, 123, 136–150 AdRotator, 173–174 ASP.NET, 10 BaseValidator, 160–162 BulletedList, 151, 155–157 Button, 139 Calendar, 173, 175–177 CheckBox, 139 CheckBoxList, 151, 152 classes, 138–139 Color property, 142 colors, 142 CompareValidator, 158, 163 composite controls, 1136–1139 control declaration, 140 creating label for specific data, 1139 CustomValidator, 158, 167–168 DefaultButton property, 146 derived controls, 1139–1142
■ INDEX
1615
DropDownList, 151 enumerations, 142 events, 139 exposing inner, user controls, 696–697 extending, 1136–1142 FileUpload, 139 Focus method, 144–146 Font property, 143–144 handling web control events, 147–150 HiddenField, 139 HTML server controls compared, 140 HyperLink, 139 Image, 139 ImageButton, 139 ImageMap, 139 inheritance hierarchy, 137 Label, 139 LinkButton, 139 list controls, 150–157 ListBox, 151 methods, 139 MultiView, 173 Panel, 139 properties, 138–139 RadioButton, 139 RadioButtonList, 151, 152 RangeValidator, 158, 162 RegularExpressionValidator, 158, 163–166 RequiredFieldValidator, 158, 162 rich controls, 172–177 ScrollBars property, 146–147 server-side form tag, 140 special restrictions, 140 style attributes, 140 Substitution, 173 supporting style properties, 1115–1119 Table, 139 TableCell, 139 TableRow, 139 TextBox, 139 Unit structure, 141 ValidationSummary, 158, 168 View, 173 ViewState collection, 1127 WebControl, 137 Wizard, 173 Xml control, 173
web deploy approach, 799, 804–813 creating website, 805 deploying website, 811–813 preparing IIS, 805 publishing databases, 810–811
transforming web.config, 806–810 inserting elements, 808 removing elements, 809–810 replacing sections, 809 setting attributes, 807–808
Web Deployment model transforming web.config, 806
Web Deployment Tool option, WebPI, 805 Web Development Helper tool, 68–70
decoding view state information, 81 tracing with, 120
web forms, 12, 71, 180 see also web pages accessing HTTP context, 120–121 Application object, 106 application-level tracing, 118–119 ASP.NET event model, 75 automatic postbacks, 76–77 Cache object, 106 changes in ASP.NET 4, 71 client-side control IDs, 88–90 core assemblies for pages, 43 dynamic user interface, 74–75 HTML forms, 72–74 moving between pages, 110–111 MVC compared, 1377 Page class, 105–121
properties, 105 page processing, 72–90 PageFlow example, 94–96 pages as control containers, 97–105
dynamic control creation, 103–105 page header, 101–103 showing control tree, 97–101
processing stages, 90–96 automatic data binding, 93 cleanup, 94 event handling, 93 page framework initialization, 91 user code initialization, 92 validation, 92
Request object, 106–107 Response object, 108–111 Server object, 111–113 Session object, 106 Trace object, 114–120 User object, 114 view state, 77–81 XHTML compliance, 82–87
configuring XHTML rendering, 84–85 default doctype, Visual Studio, 86 document type definitions, 83–84
XHTML validation, 86–87
■ INDEX
1616
web methods, AJAX creating, 1257–1260 placing in page, 1263–1264 security, 1270
web package feature, Visual Studio, 60 web packages, 17 web page files, 36 web pages
see also web forms; web part pages $ expressions, 355 accessing custom controls, 1112 asynchronous pages, 512–525
creating, 513–515 handling errors, 518–520 multiple asynchronous tasks and
timeouts, 523–525 querying data in, 515–517 using caching with asynchronous tasks,
521–523 connecting code-behind files to, 55–56 connecting control tags to page variables,
56–57 content pages, 722 content placeholders, 722 converting page to user control, 686 creating client callbacks, 1238 creating JavaScript page processor,
1199–1203 cross-page posting, 110, 247–253
getting page-specific information, 249–250
performing in any event handler, 250–251 CSS, 705–709 customizing web pages, 1319 debugging, Visual Studio, 63 designing Silverlight page, 1470–1474 designing with Visual Studio, 28–34
absolute positioning, 29 HTML tables, 31 smart tags, 30 static HTML tags, 31 structuring HTML markup, 32–34
disabling session state management, 259 embedding dynamic graphics in, 1162–1172
custom controls that use GDI+, 1167–1172
passing information to dynamic images, 1164–1166
using PNG format, 1163 enableViewState attribute, 243 GDI+ passing information between, 1172 managing browser history, AJAX, 1284–1288
ScriptManager restoring page state, 1287
master pages, 705, 721–736 models for coding with Visual Studio, 52 moving between, 110–111 pages as control containers, 97–105
dynamic control creation, 103–105 page header, 101–103 showing control tree, 97–101
pages with multiple views, 738–751 MultiView control, 738–742 Wizard control, 742–751
partial caching, 701–704 partial rendering, 1272 placing web method in, AJAX, 1263–1264 query string, 245–247 rendering GDI+ custom controls, 1169–1172 script injection attacks, 1210–1215 themes, 705, 710–721 transferring information between, 245–253 URL encoding, 247 user controls compared, 684 ViewState page property, 236
web part pages, 1319–1329 see also web parts adding web parts to, 1323–1327 creating page design, 1320–1321 customizing, 1327–1329 display modes, 1327 portal pages, 1318 using custom web parts, 1347–1348 Web Parts Framework, 1319 WebPartManager control, 1319, 1321–1322 WebPartZone control, 1322
web part tasks, 1330–1338 web parts, 1329–1375
see also web part pages, WebPart class accessing properties, 1330, 1331 adding to web part pages, 1323–1327 ASP.NET 2.0, 13 authorizing, 1373–1374 connecting, 1354–1363
communication contracts, 1356 consumer web parts, 1358–1360 dynamic connection points, 1361–1362 multiple connection points, 1362–1363 provider web parts, 1356–1358 static connections, 1360–1361
creating custom web part editor, 1351–1354 creating typed DataSets, 1340–1341 custom verbs, 1363–1364 developing, 1339–1347 editing properties, 1348–1354 editor web parts, ASP.NET, 1350 implementing through user controls, 1339
■ INDEX
1617
import statements, 1341 initializing, 1342–1343, 1346 IWebPart interface, 1335–1338 loading data, 1343 overriding properties, 1346 personalization, 1367, 1374–1375
resetting, 1374 processing events, 1343 rendering, 1345–1346 uploading dynamically, 1367 user controls, 1364–1367 using custom web parts, 1347–1348 web part tasks, 1330–1338
web parts controls, 124 Web Parts Framework
creating web parts, 1330 customizing web pages, 1319 editing properties of web parts, 1348–1354 personalization, 1317 web part pages, 1319 Web Parts vs. ASP.NET AJAX, 1317
Web Platform Installer see WebPI Web Platform tab, WebPI, 796 web projects
see also project-based development changing target version of .NET, 25 Visual Studio, 58–63
creating web projects, 60–61 migrating websites, 61–63 project-based development, 59–60
websites and, 22 web reference
adding, Silverlight, 1508–1510 web references
App_WebReferences directory, 183 web server
integrated, Visual Studio, 21 web server controls, 11
web control classes, 138–139 Web Server section, WebPI, 796 web server settings, web.config, 196 web services
ASP.NET applications, 180 Silverlight, 1460, 1507–1514
adding web reference, 1508–1510 calling web service, 1510–1511 configuring web service URL, 1511–1512 creating web service, 1508 cross-domain web service calls,
1512–1514 System.Web.Services.dll assembly, 43
web services files, ASP.NET, 36 web services, AJAX, 1254–1263
authentication service, forms, 1265–1267 calling, 1260–1263 creating, 1256–1257 creating web method, 1257–1260 cross-site scripting attacks, 1255 data types for parameters and return values,
1257 hiding, 1263 placing web method in page, 1263–1264 profile service, 1270–1272 role service, 1267–1270 session state, 1258
Web Site command migrating websites, 61
web.config file, 12, 36, 191–195 add element, 197 anonymousIdentification element, 1015 application-level tracing, 118–119 applying master pages, 731 applying themes, 718 appSettings element, 192, 197–198 ASP.NET 3.5 applications, 192 ASP.NET AJAX application services, 1264 ASP.NET applications, 180 ASP.NET-specific configuration settings,
195 assemblies element, 195 assembly references, 61 authentication section, 195, 859, 860 authenticationService element, 1265 authorization and roles in IIS 7.x, 988, 989 authorization element, 195 authorization rules, 966, 967 authorization with roles in IIS 7.x, 992 building data access component, 318 cache configuration, 485 case-sensitivity, 192 changing target version of .NET, 25 compilation element, 195 configSections element, 206 configuration inheritance, 193–194 configured impersonation, 957, 959 configuring connection strings, 892 configuring custom HTTP handler, 220 configuring forms authentication, 886 configuring membership providers, 893 configuring role-based authorization, 976 configuring session state, 258–265 configuring SqlProfileProvider, 1001 ConnectionStrings collection, 199 connectionStrings element, 192, 198–199 controlling directory access, 969 controlling file access, 970
■ INDEX
1618
creating custom HTTP module, 229 creating section class, 204–206 credentials store, 862, 871 custom settings, 197 customErrors element, 196 database connection strings, 198 DbProviderFactories class, 312 debug attribute, 195 defining caching settings in, 484 defining profile properties, 1002 denying access to anonymous users, 950
forms authentication, 863 disabling request validation, 1211, 1212 enableExport attribute, 1371 enabling debugging, 42 encrypting configuration sections, 209 error handling, MVC, 1387 extending configuration file structure, 204 extending request validation, 1215 FactoredProfileProvider, 1027 feature delegation, 948, 949 forms authentication, 853, 859–863
IIS 7.x and, 874, 875, 877 forms tag, authentication, 859–862 handlers element, 196 hashing passwords in, 869–870 httpErrors element, 196 implementing provider classes, 1079, 1082 location element, 194–195 masterPageFile attribute, 731 membership element, 196 membership providers, 883 migrating websites, 61, 63 overriding browser type detection, 1125 overriding machine.config settings, 191 pages element, 196 persistence, 202 profile element, 196 profile property element attributes, 1003 profile serialization, 1007 profileService element, 1270 projectless development, 61 queries with provider-agnostic code, 313,
314 registering HTTP handlers, 218 registering section class, 206–208 roleManager element, 196 roleService element, 1267 serializeAs attribute, 1006 sessionState element, 196 state management, 201 structure of, 192 System.Configuration.dll assembly, 43
system.web element, 191, 192, 195–196 system.web.extensions section, 1264 targetFramework attribute, 195 testing FactoredProfileProvider, 1028 trace element, 119, 196 transformation feature, 36 transforming, 806–810
inserting elements, 808 removing elements, 809–810 replacing sections, 809 setting attributes, 807–808
uploading web parts dynamically, 1369 using custom provider classes, 1102 using custom server controls, 1112 web server settings, 196 webParts element, 1374 webServer element, 192, 196 WAT, 202–204 website deployment, 800
web.Debug.config file, 194 web.Release.config file, 194 WebBrowsable attribute, 1341, 1350, 1351 WebBrowsableObject property, 1354 WebConfigurationManager class, 200
AppSettings property, 199, 200, 202 ConnectionStrings property, 199, 200, 202,
280 GetSection method, 200, 201, 202 OpenMachineConfiguration method, 200 OpenWebConfiguration method, 200, 201,
202 purpose of, 202 reading and writing configuration sections
programmatically, 199 retrieving connection strings, 280 using methods and properties of, 202
WebConfigurationSettings class, 197 WebControl class, 137, 1109
AddAttributesToRender method, 1117 creating custom web part editor, 1351 custom controls using GDI+, 1168 properties, 138 Render method, 1116 RenderBeginTag method, 1116, 1118, 1119 RenderChildren method, 1119 RenderContents method, 1116, 1118, 1119 RenderEndTag method, 1116, 1119 rendering process, 1119 rollover buttons, JavaScript, 1222 supporting style properties, 1115–1119, 1122
WebControl.Font property, 143 WebControlAdapter class, 1126 WebControls namespace, 137
■ INDEX
1619
WebDisplayName attribute, 1351 WebForm_AutoFocus method, 145 WebHandler directive, ashx file, 222 WebMethod attribute, AJAX, 1257, 1258, 1263 web-page framework, AJAX, 1298–1303
Application class, 1298–1299 client-side AJAX control, 1300–1303 client-side model, 1300 PageRequestManager, 1299
web-page model connecting control tags to page variables,
56 WebPart class
AllowClose property, 1331 AllowConnect property, 1331 AllowEdit property, 1331 AllowHide property, 1331 AllowMinimize property, 1331 AllowZoneChange property, 1332 CatalogIconImageUrl property, 1332 ChromeState property, 1332 ChromeType property, 1332 ConnectErrorMessage property, 1332 connecting web parts, 1356 Controls collection, 1332, 1334 creating consumer web parts, 1358 creating custom web part editor, 1351 creating custom web parts, 1339 creating web part pages, 1319 creating web parts, 1330 Description property, 1332 Direction property, 1332 DisplayTitle property, 1332 ExportMode property, 1332 HasSharedData property, 1332 HasUserData property, 1333 HelpMode property, 1333 HelpUrl property, 1333 Hidden property, 1333 IsClosed property, 1333 IsShared property, 1333 IsStandalone property, 1333 IsStatic property, 1333 rendering custom web parts, 1346 Title property, 1332, 1333 TitleUrl property, 1333 uploading web parts dynamically, 1371 Verbs property, 1333 Zone property, 1333 ZoneIndex property, 1333
WebPartAuthorizationEventArgs class, 1374 WebPartDisplayMode class, 1328 WebPartExportMode type, 1369
WebPartManager control, 1319, 1321–1322 adding web parts to pages, 1326 authorizing web parts, 1373, 1374 BrowseDisplayMode field, 1327 CatalogDisplayMode field, 1327 ConnectDisplayMode field, 1327 connecting web parts, 1356 creating web parts, 1331 customizing web part pages, 1327, 1328 DesignDisplayMode field, 1327 DisplayMode property, 1327, 1328 EditDisplayMode field, 1327 personalization, 1374 static connections between web parts, 1360 WebParts property, 1331
webParts element, web.config, 1374 WebParts namespace, 1341 WebParts section, Visual Studio, 1321 WebParts Toolbox tab, 38 WebPartToEdit property, 1352 WebPartVerb class, 1363, 1364 WebPartVerbCollection class, 1364 WebPartZone control, 1322
adding web parts to pages, 1324, 1325 creating web part pages, 1319 creating web parts, 1334 editing web part properties, 1348 static connections, web parts, 1360 uploading web parts dynamically, 1367,
1369 using custom web parts, 1347
WebPI (Web Platform Installer) installing IIS, 795 preparing IIS using web deploy, 805 Web Platform tab, 796 Web Server section, 796
WebResource attribute, JavaScript, 1195, 1223 WebResource.axd extension, 145 WebService attribute, AJAX, 1257 WebService directive, AJAX, 1256 WebServiceBinding attribute, AJAX, 1257 Website Administration Tool see WAT website deployment, 795, 799–819
configuring IIS, 797–799 copying files approach, 800–804 extending integrated pipeline, 830–833 FTP deployment approach, 813–819 installing IIS, 795–797 project-less website, 817–819 web deployment approach, 799, 804–813
website navigation see navigation WebsiteDeployment directory, 800, 811, 815,
817
■ INDEX
1620
websites see also Dynamic Data websites Add New Item window, 53 ASP.NET Empty Web Site template, 25 ASP.NET Web Site template, 25 configuring bindings for, 849 creating, 89, 820–821
projectless website, 23–27 creating virtual directories, 821 enabling SSL traffic on, 850 managing websites, 820–830
application pools, 826–829 application warm-up feature, 829–830 VirtualPathProvider class, 822–825
migrating, 61–63 pages with multiple views, 738–751
MultiView control, 738–742 Wizard control, 742–751
site maps, 751–773 standardizing website layout, 721 web projects and, 22
well-formed XML, 624 WF (Windows Workflow Foundation), 14 When Hit option, breakpoints, 68 WHERE clause
avoiding wide-open queries, 318 concurrency strategies, 327 LINQ expressions, 570 ROWNUM operator, 427 SQL queries, 288 strict concurrency checking, 380
Where method, LINQ, 570, 577 Where property, EntityDataSource, 610 WhereIterator(Of T) class, LINQ, 565, 566 whitespace
metacharacters for matching types of characters, 165
replace spaces with nonbreaking spaces, 113
XML document, 629 Widen method, GraphicsPath, 1157 widescreen monitor
split view, Visual Studio, 28 Width property
ColumnDefinition, 1491 Pens class, 1158 WebControl, 138
wildcards authorization rules, 966 filtering files with, 536
Win16/Win32 properties, HttpBrowserCapabilities, 1124
window.open function, pop-ups, 1216 window.setInterval method, 1200 WindowHeight property, PopUp, 1217 windowless parameter, Silverlight, 1468 windows
certificate stores, 1034 certificates snap-in, 1035 pop-up windows, JavaScript, 1216–1221 Visual Studio, 35
Windows account permissions, 799 Windows authentication, 935–957
accessing user information, 951–957 authorization rules, 967 Basic authentication, 938–939 configured impersonation, 957, 959 configuring ASP.NET, 946 configuring IIS 7.x, 944–946 controlling role access, 970 controlling user access, 968 delegation, 958–959 denying access to anonymous users,
950–951 Digest authentication, 938, 939 file-based authorization, 972 forms authentication compared, 855, 856,
857 HTTP modules, 947, 949 IdentityReference class, 955–957 IIS, 935 IIS 7.x pipeline, 946–950 impersonation, 957–962 implementing, 944–957 Integrated Windows authentication, 938,
940–944 Kerberos authentication, 941–944 NTLM authentication, 940–941 programmatic impersonation, 957, 960–963
getting tokens, 960–961 performing impersonation, 961–963
reasons against using, 937 reasons for using, 935–937 results of querying RolePrincipal with, 987 using roles API with, 986–988 valid Windows identities, 955 WindowsIdentity class, 953–955 WindowsPrincipal class, 952–953
Windows DTC (Distributed Transaction Coordinator), 306
Windows Server AppFabric, 486 WindowsAuthenticationModule, 946 WindowsBuiltInRole enumeration, 952, 953
authorization using IsInRole method, 973
■ INDEX
1621
WindowsIdentity class, 953–955 GetCurrent method, 962 getting tokens, 960, 961 Groups property, 954 Impersonate method, 960, 961 methods, 954 performing impersonation, 961, 962 programmatic impersonation, 960 properties, 953 Token property, 960
WindowsImpersonationContext class, 960, 961 WindowsPrincipal class, 952–953
Identity property, 952 IsInRole method, 952, 973
WindowsTokenRoleProvider class, 980, 986 WindowWidth property, PopUp, 1217 Wizard control, 173, 737, 742–751
ActiveStepChanged event, 746, 1285 ActiveStepIndex property, 745, 746, 1286 CancelButtonClick event, 746 CancelButtonStyle property, 748 CancelDestinationPageUrl property, 746 ControlStyle property, 748 customizing appearance, 748–751 DisplayCancelButton property, 746 DisplaySideBar property, 742 events, 746–747 FinishButtonClick event, 746, 747 FinishNavigationTemplate property, 749 FinishPreviousButtonStyle property, 748 GetHistory method, 747 HeaderStyle property, 748 HeaderTemplate property, 749 HeaderText property, 748 LayoutTemplate property, 749, 751 navigation, 742 navigation changes in ASP.NET 4, 737 NavigationButtonStyle property, 748 NavigationStyle property, 748 NextButtonClick event, 746 PreviousButtonClick event, 746 programming models, 746 SideBarButtonClick event, 746 SideBarButtonStyle property, 748 SideBarStyle property, 748 SideBarTemplate property, 749 StartNavigationTemplate property, 749 StartNextButtonStyle property, 748 StepNextButtonXyz properties, 748 StepPreviousButtonStyle property, 748 steps, 743–745 StepStyle property, 748
styles, 748 templates, 749–750 validation controls, 751
wizard controls CreateUserWizard control, 918–923
WizardStep class, 743 WizardStepType enumeration, 743 WPF (Windows Presentation Foundation), 14,
21, 48 wrapping query strings, 1060–1063 Write method
HtmlTextWriter, 1110, 1122 HttpResponse, 109 Response, 97, 248 Trace, 116
writeAccessProperties attribute, 1270, 1271 WriteAllBytes method, 529 WriteAllLines method, 529 WriteAllText method, 529 WriteAttribute method, 1112 WriteAttributeString method, 629, 632 WriteBeginTag method, 1111 WriteComment method, 629 WriteElementString method, 630 WriteEmployeesList method, 328 WriteEndElement method, 630, 631 WriteEndTag method, 1112 WriteFile method, HttpResponse, 109 WriteLine method, 548 WriteStartDocument method, 629 WriteStartElement method, 629, 630, 632 WriteSubstitution method, 482, 483, 484 writeToDiagnosticsTrace attribute, 119 WriteXml method, 333, 628, 631, 677, 678 WriteXmlSchema method, 333, 678 writing configuration sections
programmatically, 199–202 writing XML files, 628–632
■X X coordinate
configuring hotspots, 1144 FillRectangle method, 1150
x namespace prefix Class attribute, 1478 Silverlight, 1475
X509 certificates, 1032 X509Certificate class, 1033 X509Certificate2 class, 1033 X509CertificateCollection class, 1033 X509Store class, 1033
■ INDEX
1622
XAML, 1474–1476 creating Silverlight project, 1469 designing Silverlight page, 1470 mapping to Silverlight classes, 1474 XML namespace declaration, 1476
XAML code-behind, 1477–1478, 1510 XAML markup, Silverlight, 1495 XAML namespace, Silverlight, 1475 XAML pages, viewing, 1471 XAP files, Silverlight, 1463, 1464 XAttribute class, 642, 645 XDocument class, 635, 642–648
creating XML with, 642–644 dealing with namespaces, 646 Load method, 644 nested elements, 645 Parse method, 644 reading XML files, 632 reading XML with, 644–646 Save method, 644 transforming XML content, 664 using XPath searches with, 653 validating XML content, 658–659 writing XML files, 628 XNode objects, 642
XElement class Ancestors method, 653 creating XML with XDocument, 642 dealing with namespaces, 646 Descendants method, 653, 655 Element method, 645, 646, 648 Elements method, 645, 646 ElementsAfterSelf method, 653 ElementsBeforeSelf method, 653 methods, 645 properties, 645 transforming XML content, 664
XHTML writing JavaScript names in, 1192 XML and, 623
XHTML 1.0 frameset doctype, 84 XHTML 1.0 transitional doctype, 83, 86 XHTML 1.1 strict doctype, 83, 84 XHTML compliance, 82–87
document type definitions, 83–84 XHTML validation, 86–87
XHTML rendering ASP.NET 4, 17 configuring, 84–85 controlRenderingCompatibilityVersion
attribute, 84 web forms changes in ASP.NET 4, 71
XHTML validation, 86–87
xhtmlConformance element, 84, 85 XhtmlTextWriter class, 1121 XML (Extensible Markup Language), 621, 622
ADO.NET DataSet, 677–679 advantages of, 623–624 application integration, 621 binding chart to XML file, 1184–1185 binding to content, 676 child node, 651 converting DataSet to, 678–679 creating with XDocument, 642–644 cryptography namespace, 1032 data binding see XML data binding descendant node, 651 GetXml method, 333 GetXmlSchema method, 333 in-memory processing, 635–648 LINQ to XML, 14, 563 reading with XDocument, 644–646 reading XML files, 632–635 ReadXml method, 334 ReadXmlSchema method, 334 searching content, 648–655
LINQ, 653–655 XmlDocument, 648–651 XPath class, 651–653
storing data, 622 stream-based processing, 628–634 System.Xml.dll assembly, 43 transforming content, 659–665
LINQ to XML, 663–665 Xml control, 662–663 XslCompiledTransform, 661–662
transforming to HTML, 662 updating via XmlDataSource, 677 validating content, 655–659
XDocument class, 658–659 XmlDocument class, 656–658
well-formed XML, 624 when to use, 621–622 WriteXml method, 333 WriteXmlSchema method, 333 writing XML files, 628–632 XDocument class, 642–648
Xml control, 173 DocumentSource property, 662 transforming content, 662–663 TransformSource property, 662
XML data binding, 665–677 binding to content from other sources, 676 flattening XML with, 667 hierarchical binding, TreeView, 672–674 nested grids, 671–672
■ INDEX
1623
nonhierarchical binding, 666–668 updating XML via XmlDataSource, 677 with templates, 669 XPath class, 668–670 XSLT, 674–675
XML document dynamically created, 631 whitespace, 629
Xml mode, serialization in, 1007 XML namespaces, 624–626
mapping, Silverlight, 1476 namespace prefixes, 626, 632 xmlns attribute, 625
XML parsers, 624 XML schedule file, AdRotator, 173 XML schemas, 626–628 XML serialization
DataSet class, 332 web.config, 1006
XML visualizer, Visual Studio, 647 XmlAttribute class, 1009 XmlDataSource control class, 368, 665
see also data source controls binding to XML content, 676 CacheXyz properties, 676 caching with, 496 Data property, 676, 779 DataBind method, 666 DataFile property, 676, 677 GetHierarchicalView method, 672 GetXmlDocument method, 666, 677 hierarchical binding with TreeView, 672 nonhierarchical binding, 666 Save method, 677 Transform property, 674 TransformFile property, 674 updating XML via, 677 using XPath to filter results, 669, 670 XPath property, 669, 670 XSLT features, 674
XmlDocument class, 635, 636–639 ChildNodes property, 636 CreateNavigator method, 639 creating XPathNavigator from, 639 GetElementsByTagName method, 648, 650 Load method, 636 LoadXml method, 637 Nodes collection, 666 nonhierarchical binding, 666 reading XML files, 632 retrieving information from, 637 Save method, 639 searching XML content, 648–651
SelectNodes method, 652 SelectSingleNode method, 652 user concurrency, 636 validating XML content, 656–658 writing XML files, 628 XmlNode objects, 636
XmlDownloadResolver class, 636 XmlElement class, 649, 1009 XMLHttpRequest object, 15, 1230–1231
building Ajax-style page, 1232, 1233 handling responses, 1231 open method, 1230 responseText property, 1231 responseXML property, 1231 send method, 1231 sending requests, 1230–1231
XmlIgnore class, 1009 XmlLabel control, 1140, 1141 XmlMembershipProvider class, 1078–1095
designing custom providers, 1070 implementing provider classes, 1079, 1080 TransformPassword method, 1087 using custom provider classes, 1102
XmlNode class, 636 HasChildNodes property, 639 NodeType property, 638 properties, 638
XmlNode data types, AJAX, 1258 xmlns attribute
dealing with namespaces, XDocument, 646 WriteAttributeString method, 632 XML namespaces, 625
XmlReader class Create method, 656
XmlReaderSettings class, 656, 657 XmlRoleProvider class, 1095–1101
CreateRole method, 1097 CurrentStore property, 1098 DeleteRole method, 1097, 1098 designing custom providers, 1070 FileName property, 1097 FindUsersInRoles method, 1100 Initialize method, 1096 IsUserInRole method, 1100 RemoveUsersFromRoles method, 1099 RoleExists method, 1097, 1098 using custom provider classes, 1102
XmlSchemaValidationException class, 657 XmlSerializer class, 1009, 1070
implementing store, 1071, 1073, 1078 XmlSiteMapProvider class, 751, 752, 753, 759,
760, 764
■ INDEX
1624
XmlTextReader class, 628 AttributeCount property, 633 designing custom providers, 1070 MoveToContent method, 633, 634 MoveToNextAttribute method, 633 Read method, 632 ReadElementString method, 634 ReadEndElement method, 634 ReadStartElement method, 634
XmlTextWriter class, 628 designing custom providers, 1070 properties, 629 WriteAttributeString method, 629, 632 WriteComment method, 629 WriteElementString method, 630 WriteEndElement method, 630, 631 WriteStartDocument method, 629 WriteStartElement method, 629, 630, 632
XmlValidatingReader class, 656 XNamespace class, 646, 647, 648 XNode class, 642 XPath class
combining multiple paths, 652 count function, 652 data binding expressions, 668, 669 defining selection criteria, 652 executing XPath expression, 652 extracting information with, 653 filtering results, 669 indicating current node, 652 indicating parent node, 652 position function, 652 searching for child nodes, 651 searching with XDocument, 653 searching XML content, 651–653 selecting attributes of nodes, 652 selecting element in path, 652 starts-with function, 652 syntax, 651
XPath property, 669, 670
XPathNavigator class, 635, 639–642 creating from XmlDocument, 639 MoveToXyz methods, 641 NodeType property, 641 reading XML files, 632 Select method, 652
XPathSelect method, 671 XSL (Extensible Stylesheet Language)
transforming XML content, 659–663 Xml control, 662–663 XslCompiledTransform, 661–662
XSL stylesheet, 659 XslCompiledTransform class, 661–662 XSLT (XSL Transformations), 83
XML data binding, 674–675 XValueMember property, Series, 1183
■Y Y coordinate
configuring hotspots, 1144 FillRectangle method, 1150
YValueMember property, Series, 1183
■Z ZIndex property, Canvas, 1482, 1483 ZIP file
creating HTTP handler, 224 zipping see compression Zone property, WebPart, 1333 ZoneIndex property, 1333 zones
accidentally modifying/closing, 1327 adding web parts to pages, 1323
zones, prebuilt creating web part page, 1320
ZoneTemplate control adding web parts to pages, 1324, 1325 creating web parts, 1330 uploading web parts dynamically, 1367