Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / Net / System / Net / Configuration / AuthenticationModulesSection.cs / 1305376 / AuthenticationModulesSection.cs
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
namespace System.Net.Configuration
{
using System.Configuration;
using System.Collections.Generic;
using System.Globalization;
using System.Net;
using System.Threading;
public sealed class AuthenticationModulesSection : ConfigurationSection
{
public AuthenticationModulesSection()
{
this.properties.Add(this.authenticationModules);
}
protected override void PostDeserialize()
{
// Perf optimization. If the configuration is coming from machine.config
// It is safe and we don't need to check for permissions.
if (EvaluationContext.IsMachineLevel)
return;
try {
ExceptionHelper.UnmanagedPermission.Demand();
} catch (Exception exception) {
throw new ConfigurationErrorsException(
SR.GetString(SR.net_config_section_permission,
ConfigurationStrings.AuthenticationModulesSectionName),
exception);
}
}
[ConfigurationProperty("", IsDefaultCollection = true)]
public AuthenticationModuleElementCollection AuthenticationModules
{
get { return (AuthenticationModuleElementCollection)this[this.authenticationModules]; }
}
protected override void InitializeDefault()
{
#if !FEATURE_PAL // Security
this.AuthenticationModules.Add(
new AuthenticationModuleElement(typeof(NegotiateClient).AssemblyQualifiedName));
this.AuthenticationModules.Add(
new AuthenticationModuleElement(typeof(KerberosClient).AssemblyQualifiedName));
this.AuthenticationModules.Add(
new AuthenticationModuleElement(typeof(NtlmClient).AssemblyQualifiedName));
this.AuthenticationModules.Add(
new AuthenticationModuleElement(typeof(DigestClient).AssemblyQualifiedName));
this.AuthenticationModules.Add(
new AuthenticationModuleElement(typeof(BasicClient).AssemblyQualifiedName));
#endif // !FEATURE_PAL // Security
}
protected override ConfigurationPropertyCollection Properties
{
get { return this.properties; }
}
ConfigurationPropertyCollection properties = new ConfigurationPropertyCollection();
readonly ConfigurationProperty authenticationModules =
new ConfigurationProperty(null, typeof(AuthenticationModuleElementCollection), null,
ConfigurationPropertyOptions.IsDefaultCollection);
}
internal sealed class AuthenticationModulesSectionInternal
{
internal AuthenticationModulesSectionInternal(AuthenticationModulesSection section)
{
if (section.AuthenticationModules.Count > 0)
{
this.authenticationModules = new List(section.AuthenticationModules.Count);
foreach(AuthenticationModuleElement authenticationModuleElement in section.AuthenticationModules)
{
Type type = null;
try
{
type = Type.GetType(authenticationModuleElement.Type, true, true);
// verify that its of the proper type of object
if (!typeof(IAuthenticationModule).IsAssignableFrom(type))
{
throw new InvalidCastException(SR.GetString(SR.net_invalid_cast, type.FullName, "IAuthenticationModule"));
}
}
catch (Exception exception)
{
if (NclUtilities.IsFatal(exception)) throw;
throw new ConfigurationErrorsException(SR.GetString(SR.net_config_authenticationmodules), exception);
}
this.authenticationModules.Add(type);
}
}
}
internal List AuthenticationModules
{
get
{
List retval = this.authenticationModules;
if (retval == null)
{
retval = new List(0);
}
return retval;
}
}
internal static object ClassSyncObject
{
get
{
if (classSyncObject == null)
{
object o = new object();
Interlocked.CompareExchange(ref classSyncObject, o, null);
}
return classSyncObject;
}
}
static internal AuthenticationModulesSectionInternal GetSection()
{
lock (AuthenticationModulesSectionInternal.ClassSyncObject)
{
AuthenticationModulesSection section = PrivilegedConfigurationManager.GetSection(ConfigurationStrings.AuthenticationModulesSectionPath) as AuthenticationModulesSection;
if (section == null)
return null;
return new AuthenticationModulesSectionInternal(section);
}
}
List authenticationModules = null;
static object classSyncObject = null;
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- PrintController.cs
- DataControlFieldHeaderCell.cs
- Publisher.cs
- PlainXmlDeserializer.cs
- HttpApplicationFactory.cs
- ArraySubsetEnumerator.cs
- PresentationTraceSources.cs
- ReaderContextStackData.cs
- NullableBoolConverter.cs
- GradientStopCollection.cs
- DataControlReference.cs
- TimeoutException.cs
- DocumentCollection.cs
- ActivityExecutionContextCollection.cs
- HttpListenerTimeoutManager.cs
- TimeSpanSecondsConverter.cs
- TextServicesCompartment.cs
- CheckBoxField.cs
- Binding.cs
- XmlWriterTraceListener.cs
- WebBrowserHelper.cs
- StateBag.cs
- StateBag.cs
- PerformanceCounterPermissionEntryCollection.cs
- JsonFaultDetail.cs
- EntityDescriptor.cs
- FrameworkReadOnlyPropertyMetadata.cs
- HyperLinkField.cs
- FunctionParameter.cs
- ProviderConnectionPointCollection.cs
- TypeUtil.cs
- ProcessThreadCollection.cs
- SqlDataSourceCustomCommandEditor.cs
- SystemIPGlobalStatistics.cs
- Icon.cs
- SqlDataSourceStatusEventArgs.cs
- DesignTimeValidationFeature.cs
- ListControl.cs
- DataIdProcessor.cs
- X509Extension.cs
- HasCopySemanticsAttribute.cs
- WindowsListViewScroll.cs
- MasterPageCodeDomTreeGenerator.cs
- Axis.cs
- JapaneseLunisolarCalendar.cs
- SchemaDeclBase.cs
- ZipIOLocalFileBlock.cs
- Dump.cs
- SqlTypesSchemaImporter.cs
- DataSourceHelper.cs
- UmAlQuraCalendar.cs
- ParameterDataSourceExpression.cs
- CalendarAutomationPeer.cs
- DbFunctionCommandTree.cs
- DropTarget.cs
- UpdateExpressionVisitor.cs
- SplitterPanel.cs
- XamlStream.cs
- XmlCharCheckingWriter.cs
- InputMethod.cs
- ValueTypeIndexerReference.cs
- XPathNodeIterator.cs
- MergeLocalizationDirectives.cs
- Animatable.cs
- DbParameterCollection.cs
- SqlError.cs
- XhtmlConformanceSection.cs
- LiteralText.cs
- KeyGestureConverter.cs
- UIElementParagraph.cs
- LogRestartAreaEnumerator.cs
- RecommendedAsConfigurableAttribute.cs
- MenuScrollingVisibilityConverter.cs
- KnownColorTable.cs
- ProgressBarAutomationPeer.cs
- XmlTextReaderImplHelpers.cs
- MediaElementAutomationPeer.cs
- XmlNullResolver.cs
- ObjectIDGenerator.cs
- KnownBoxes.cs
- Column.cs
- WindowsIPAddress.cs
- RoleGroupCollection.cs
- SoapIncludeAttribute.cs
- SafeTimerHandle.cs
- XmlToDatasetMap.cs
- RedirectionProxy.cs
- InheritedPropertyChangedEventArgs.cs
- XmlWellformedWriter.cs
- InlineCollection.cs
- RemoveStoryboard.cs
- ActiveXSite.cs
- Number.cs
- XmlSerializationWriter.cs
- DuplicateDetector.cs
- DataColumnMappingCollection.cs
- XsltContext.cs
- ImplicitInputBrush.cs
- PolicyDesigner.cs
- Exceptions.cs