| Acknowledgments | xiii |
| Introduction | xv |
| PART I OVERVIEW OF MICROSOFT ASP.NET CONFIGURATION | |
| 1 Introduction to the Microsoft ASP.NET Configuration | 3 |
| ASP.NET Configuration Overview | 3 |
| Dissecting the ASP.NET Configuration Files | 4 |
| Applying Configuration File Modifications | 9 |
| Looking at Security | 10 |
| Editing Configuration Files | 10 |
| Key Points | 12 |
| 2 Examining the ASP.NET Configuration Architecture | 13 |
| Hierarchical Configuration Model | 13 |
| Targeting Configuration Settings | 16 |
| Preventing Configuration Settings from Being Overridden | 17 |
| Examining Configuration Section Handlers | 17 |
| Key Points | 23 |
| PART II ASP.NET CONFIGURATION SETTINGS | |
| 3 Configuration Section and Application Settings | 27 |
| Working with <configSections> | 27 |
| Declaring a Section | 27 |
| Declaring a Section Group | 28 |
| Removing a Section | 29 |
| Clearing All Sections | 30 |
| Working with <appSettings> | 30 |
| Adding a Value | 30 |
| Removing a Value | 31 |
| Clearing All Values | 32 |
| Using the File Attribute | 32 |
| Reading <appSettings> Values | 33 |
| Key Points | 34 |
| 4 System.Web Configuration Settings35 | |
| Working with the <authentication> Section | 36 |
| Configuring the Authentication Mode | 37 |
| <authentication> Key Points | 44 |
| Working with the <authorization> Section | 44 |
| File Authorization | 47 |
| <authorization> Key Points | 47 |
| Working with the <browserCaps> Section | 47 |
| Understanding <browserCaps> Elements | 48 |
| <browserCaps> Key Points | 52 |
| Working with the <clientTarget> Section | 52 |
| Uplevel vs. Downlevel | 53 |
| Using Client Target in Your Pages | 53 |
| Adding and Removing Aliases | 54 |
| <clientTarget> Key Points | 54 |
| Working with the <compilation> Section | 54 |
| Adding Assemblies to Compilation | 57 |
| <compilation> Key Points | 58 |
| Working with the <customErrors> Section | 58 |
| Customizing HTTP Error Messages | 60 |
| <customErrors> Key Points | 60 |
| Working with the <globalization> Section | 61 |
| <globalization> Key Points | 61 |
| Working with the <httpHandlers> Section | 62 |
| Creating a Custom HTTP Handler | 63 |
| File Extension-Based Security | 67 |
| <httpHandlers> Key Points | 67 |
| Working with the <httpModules> Section | 68 |
| Adding a Module | 68 |
| Creating a Custom HTTP Module | 68 |
| <httpModules> Key Points | 71 |
| Working with the <httpRuntime> Section | 72 |
| <httpRuntime> Key Points | 73 |
| Working with the <identity> Section | 73 |
| <Identity> Key Points | 75 |
| Working with the <machineKey> Section | 75 |
| <machineKey> Key Points | 77 |
| Working with the <pages> Section | 77 |
| Enable or Disable View State? | 78 |
| To Mac or Not to Mac? | 79 |
| <pages> Key Points | 79 |
| Working with the <processModel> Section | 79 |
| Customizing the Server Unavailable Message | 84 |
| Running ASP.NET on a Domain Controller | 84 |
| Troubleshooting ASP.NET Deadlocks | 85 |
| <processModel> Key Points | 85 |
| Working with the <securityPolicy> Section | 85 |
| <securityPolicy> Key Points | 86 |
| Working with the <sessionState> Section | 86 |
| Configuring State Server | 87 |
| Configuring SQL State Server | 88 |
| <sessionState> Key Points | 89 |
| Working with the <trace> Section | 89 |
| <trace> Key Points | 90 |
| Working with the <trust> Section | 90 |
| <trust> Key Points | 91 |
| Working with the <webControls> Section | 91 |
| <webControls> Key Points | 91 |
| Working with the <webServices> Section | 92 |
| <protocols> Sub-Section | 92 |
| <serviceDescriptionFormatExtensionTypes> Sub-Section | 93 |
| SOAP Extensions Sub-Sections | 93 |
| <wsdlHelpGenerator> Section | 94 |
| <webServices> Key Points | 95 |
| 5 Mobile Controls Configuration Settings | 97 |
| Working with the <mobileControls> Section | 98 |
| Working with the <deviceFilters> Section | 102 |
| Building a Comparative Filter | 103 |
| Building an Evaluator Filter | 104 |
| Using Filters with Mobile Controls | 105 |
| Updating the Mobile Controls Devices | 106 |
| Key Points | 107 |
| 6 Microsoft .NET Configuration Settings | 109 |
| Examining the <system.diagnostics> Group | 109 |
| Working with the <trace> Section | 110 |
| Working with the <switches> Section | 111 |
| Working with the <assert> Section | 113 |
| <system.diagnostics> Key Points | 114 |
| Examining the <system.net> Group | 114 |
| Working with the <authenticationModules> Section | 115 |
| Working with the <connectionManagement> Section | 116 |
| Working with the <defaultProxy> Section | 117 |
| Working with the <settings> Section | 119 |
| Working with the <webRequestModules> Section | 120 |
| <system.net> Key Points | 121 |
| Examining the <system.runtime.remoting> Group | 121 |
| Working with the <application> Section | 122 |
| Working with the <channels> Section | 128 |
| Working with the <channelSinkProviders> Section | 130 |
| Working with the <debug> Section | 131 |
| <system.runtime.remoting> Key Points | 132 |
| Examining the <system.windows.forms> Group | 132 |
| Key Points | 132 |
| 7 CLR Configuration Settings | 133 |
| Working with the <mscorlib> Section | 133 |
| Using the <cryptographySettings> Section | 133 |
| Working with the <runtime> Section | 136 |
| Using the <developmentMode> Element | 136 |
| Using the <assemblyBinding> Section | 136 |
| Working with the <startup> Section | 141 |
| Using the <requiredRuntime> Element | 141 |
| Using the <supportedRuntime> Element | 142 |
| Key Points | 143 |
| 8 IIS Settings | 145 |
| Enabling ASP.NET Support | 145 |
| ASP.NET IIS Install Utility | 147 |
| Working with Application Pools | 147 |
| Managing Application Pools | 148 |
| Configuring Application Pools | 148 |
| Creating a New Application | 154 |
| Using Windows Authentication | 155 |
| Accessing the User Identity | 156 |
| Key Points | 156 |
| PART III CREATING CUSTOM SETTINGS | |
| 9 Creating and Using Custom Sections | 159 |
| Examining the .NET Handlers | 159 |
| Creating a Custom Section with the Available Handlers | 160 |
| Creating a Section Using NameValueFileSectionHandler | 160 |
| Creating a Section Using DictionarySectionHandler | 161 |
| Creating a Section Using SingleTagSectionHandler | 162 |
| Nesting Configuration Sections | 162 |
| Creating a Custom Section with a Custom Section Handler | 163 |
| Examining the IConfigurationSectionHandler Interface | 164 |
| Creating a Simple Custom Section Handler | 165 |
| Creating a Complex Custom Section Handler | 167 |
| Key Points | 175 |
| PART IV APPENDIX AND GLOSSARY | |
| A Appendix: Microsoft .NET Framework Configuration Tool | 179 |
| Managing the Global Assembly Cache | 180 |
| Viewing All the Assemblies in the GAC | 180 |
| Adding a New Assembly to the GAC | 181 |
| Configuring Assemblies | 182 |
| Configuring Remoting | 185 |
| Adjusting .NET Security Settings | 186 |
| Increasing an Assembly's Trust | 187 |
| Adjust Zone Security | 189 |
| Evaluating an Assembly | 189 |
| Creating a Deployment Package | 190 |
| Resetting All Policy Levels | 191 |
| Configuring and Repairing .NET Applications | 191 |
| Configuring an Application | 192 |
| Fixing an Application | 193 |
| GLOSSARY | 195 |
| INDEX | 199 |