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
- SystemIPGlobalProperties.cs
- DeclaredTypeElement.cs
- SqlReorderer.cs
- Metafile.cs
- ModuleElement.cs
- DynamicResourceExtension.cs
- XmlObjectSerializerWriteContextComplex.cs
- GeneratedCodeAttribute.cs
- PartialCachingAttribute.cs
- ClonableStack.cs
- ZipFileInfoCollection.cs
- latinshape.cs
- DriveNotFoundException.cs
- EncodingDataItem.cs
- UrlSyndicationContent.cs
- GifBitmapDecoder.cs
- EntityWrapper.cs
- DescendantBaseQuery.cs
- RouteParametersHelper.cs
- SQLDateTime.cs
- TdsParserStateObject.cs
- ObjectStateEntryBaseUpdatableDataRecord.cs
- DatatypeImplementation.cs
- SqlDataAdapter.cs
- NameScopePropertyAttribute.cs
- SourceFileBuildProvider.cs
- _HTTPDateParse.cs
- SerialPort.cs
- JoinGraph.cs
- Image.cs
- DecimalAnimationUsingKeyFrames.cs
- BigInt.cs
- Compiler.cs
- StylusPointCollection.cs
- InstanceDescriptor.cs
- FunctionImportElement.cs
- DefinitionUpdate.cs
- TextBoxBase.cs
- CacheForPrimitiveTypes.cs
- WebServiceHostFactory.cs
- Label.cs
- SoapEnumAttribute.cs
- TargetControlTypeCache.cs
- HighlightVisual.cs
- ToolStripPanel.cs
- XsltException.cs
- ResetableIterator.cs
- PointAnimationUsingKeyFrames.cs
- LocalBuilder.cs
- Trace.cs
- webproxy.cs
- RawTextInputReport.cs
- DataGridViewLayoutData.cs
- controlskin.cs
- EmptyEnumerator.cs
- CheckBoxDesigner.cs
- ContextStaticAttribute.cs
- HtmlToClrEventProxy.cs
- FormDocumentDesigner.cs
- AuthorizationRuleCollection.cs
- CodeDomSerializer.cs
- HandleCollector.cs
- ControlBuilder.cs
- CornerRadiusConverter.cs
- VideoDrawing.cs
- SessionParameter.cs
- CacheAxisQuery.cs
- CompModSwitches.cs
- Console.cs
- PopupRoot.cs
- DbException.cs
- COM2IDispatchConverter.cs
- PermissionAttributes.cs
- DLinqAssociationProvider.cs
- ToolboxComponentsCreatedEventArgs.cs
- RegisteredDisposeScript.cs
- DesignTimeTemplateParser.cs
- FileChangesMonitor.cs
- TextAutomationPeer.cs
- LocalizableResourceBuilder.cs
- OleDbFactory.cs
- ListViewVirtualItemsSelectionRangeChangedEvent.cs
- BuildProvider.cs
- SqlFacetAttribute.cs
- ColorTransformHelper.cs
- SyndicationFeedFormatter.cs
- AsyncInvokeOperation.cs
- SystemIPGlobalProperties.cs
- CollectionViewGroupInternal.cs
- BooleanToVisibilityConverter.cs
- SHA512Managed.cs
- HtmlInputHidden.cs
- ConstraintConverter.cs
- ActiveDocumentEvent.cs
- AlternateViewCollection.cs
- EventRecord.cs
- BufferedGraphics.cs
- ImageListStreamer.cs
- ConnectionManagementElementCollection.cs
- QueryLifecycle.cs