Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / Net / System / Net / HttpSysSettings.cs / 1305376 / HttpSysSettings.cs
using System; using System.Diagnostics; using System.Text; using System.Collections.Generic; using System.Globalization; using System.Security.Permissions; using Microsoft.Win32; using System.IO; using System.Security; namespace System.Net { internal static class HttpSysSettings { private const string httpSysParametersKey = @"System\CurrentControlSet\Services\HTTP\Parameters"; private const bool enableNonUtf8Default = true; private const bool favorUtf8Default = true; private const string enableNonUtf8Name = "EnableNonUtf8"; private const string favorUtf8Name = "FavorUtf8"; private static bool enableNonUtf8; private static bool favorUtf8; static HttpSysSettings() { enableNonUtf8 = enableNonUtf8Default; favorUtf8 = favorUtf8Default; ReadHttpSysRegistrySettings(); } public static bool EnableNonUtf8 { get { return enableNonUtf8; } } public static bool FavorUtf8 { get { return favorUtf8; } } [RegistryPermission(SecurityAction.Assert, Read = @"HKEY_LOCAL_MACHINE\" + httpSysParametersKey)] private static void ReadHttpSysRegistrySettings() { try { RegistryKey httpSysParameters = Registry.LocalMachine.OpenSubKey(httpSysParametersKey); if (httpSysParameters == null) { LogWarning("ReadHttpSysRegistrySettings", SR.net_log_listener_httpsys_registry_null, httpSysParametersKey); } else { using (httpSysParameters) { enableNonUtf8 = ReadRegistryValue(httpSysParameters, enableNonUtf8Name, enableNonUtf8Default); favorUtf8 = ReadRegistryValue(httpSysParameters, favorUtf8Name, favorUtf8Default); } } } catch (SecurityException e) { LogRegistryException("ReadHttpSysRegistrySettings", e); } catch (ObjectDisposedException e) { LogRegistryException("ReadHttpSysRegistrySettings", e); } } private static bool ReadRegistryValue(RegistryKey key, string valueName, bool defaultValue) { Debug.Assert(key != null, "'key' must not be null"); try { // This check will throw an IOException if keyName doesn't exist. That's OK, we return the // default value. if (key.GetValueKind(valueName) == RegistryValueKind.DWord) { // At this point we know the Registry value exists and it must be valid (any DWORD value // can be converted to a bool). return Convert.ToBoolean(key.GetValue(valueName), CultureInfo.InvariantCulture); } } catch (UnauthorizedAccessException e) { LogRegistryException("ReadRegistryValue", e); } catch (IOException e) { LogRegistryException("ReadRegistryValue", e); } catch (SecurityException e) { LogRegistryException("ReadRegistryValue", e); } catch (ObjectDisposedException e) { LogRegistryException("ReadRegistryValue", e); } return defaultValue; } private static void LogRegistryException(string methodName, Exception e) { LogWarning(methodName, SR.net_log_listener_httpsys_registry_error, httpSysParametersKey, e); } private static void LogWarning(string methodName, string message, params object[] args) { if (Logging.On) { Logging.PrintWarning(Logging.HttpListener, typeof(HttpSysSettings), methodName, SR.GetString(message, args)); } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- MulticastNotSupportedException.cs
- WebRequest.cs
- DataViewListener.cs
- SiteMapProvider.cs
- Point3DCollection.cs
- Wizard.cs
- IFlowDocumentViewer.cs
- TimeSpanStorage.cs
- SimpleNameService.cs
- FontDialog.cs
- IdentityModelStringsVersion1.cs
- DataColumnCollection.cs
- DataPagerField.cs
- DbParameterCollection.cs
- UIElement.cs
- XmlTextAttribute.cs
- ResourceProperty.cs
- XmlSchemaInferenceException.cs
- DataContractSerializerOperationGenerator.cs
- OdbcDataReader.cs
- WebPartCatalogAddVerb.cs
- SqlNotificationEventArgs.cs
- NumericExpr.cs
- DirectoryInfo.cs
- OletxResourceManager.cs
- ProcessExitedException.cs
- XmlSchemaComplexContent.cs
- DbConvert.cs
- configsystem.cs
- KeyTimeConverter.cs
- DesignTimeVisibleAttribute.cs
- Error.cs
- ParameterElementCollection.cs
- DocumentSequence.cs
- BindingValueChangedEventArgs.cs
- Convert.cs
- CqlErrorHelper.cs
- PageHandlerFactory.cs
- ContentPathSegment.cs
- TagMapCollection.cs
- RequestSecurityTokenForRemoteTokenFactory.cs
- FormParameter.cs
- DependsOnAttribute.cs
- CompilationUnit.cs
- DataSourceCache.cs
- ManagedWndProcTracker.cs
- ScriptingScriptResourceHandlerSection.cs
- TokenBasedSet.cs
- RuleEngine.cs
- Transactions.cs
- CancelRequestedRecord.cs
- MultiBinding.cs
- PhysicalOps.cs
- IsolatedStorageFileStream.cs
- PenLineCapValidation.cs
- DataGridTablesFactory.cs
- StorageEndPropertyMapping.cs
- TextWriterTraceListener.cs
- FullTrustAssembly.cs
- Drawing.cs
- InvokePattern.cs
- FSWPathEditor.cs
- HttpResponseHeader.cs
- GPStream.cs
- StorageRoot.cs
- MyContact.cs
- PtsContext.cs
- AssemblyCache.cs
- _HeaderInfoTable.cs
- ImageSource.cs
- XmlChildNodes.cs
- TableRowsCollectionEditor.cs
- XmlNavigatorFilter.cs
- GlobalAclOperationRequirement.cs
- CodeNamespace.cs
- Matrix.cs
- XmlSchemaGroup.cs
- ObjectItemAttributeAssemblyLoader.cs
- figurelength.cs
- DataListItemCollection.cs
- SqlDataSourceFilteringEventArgs.cs
- SizeFConverter.cs
- EditorPartChrome.cs
- ChangeNode.cs
- ApplicationServiceManager.cs
- WindowsUpDown.cs
- VBIdentifierName.cs
- UIElement3DAutomationPeer.cs
- InputScopeConverter.cs
- GPRECTF.cs
- AttributedMetaModel.cs
- EventTrigger.cs
- BindingContext.cs
- DataGridTablesFactory.cs
- DataGridViewAutoSizeColumnsModeEventArgs.cs
- ServiceMemoryGates.cs
- CustomAttributeBuilder.cs
- Pen.cs
- CategoryNameCollection.cs
- AdapterUtil.cs