Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / whidbey / netfxsp / ndp / fx / src / Net / System / Net / Configuration / AuthenticationModulesSection.cs / 1 / 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);
}
catch
{
throw new ConfigurationErrorsException(SR.GetString(SR.net_config_authenticationmodules), new Exception(SR.GetString(SR.net_nonClsCompliantException)));
}
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.
//------------------------------------------------------------------------------
//
// 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);
}
catch
{
throw new ConfigurationErrorsException(SR.GetString(SR.net_config_authenticationmodules), new Exception(SR.GetString(SR.net_nonClsCompliantException)));
}
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
- ActivityDesignerHelper.cs
- RectangleHotSpot.cs
- FunctionUpdateCommand.cs
- ParameterInfo.cs
- MaskDescriptor.cs
- PropertyChangedEventArgs.cs
- ObjectHandle.cs
- DependencyPropertyConverter.cs
- XmlObjectSerializerWriteContext.cs
- StorageSetMapping.cs
- TrustSection.cs
- SecureConversationSecurityTokenParameters.cs
- EventLogPermissionAttribute.cs
- TextTrailingCharacterEllipsis.cs
- QilValidationVisitor.cs
- WebSysDescriptionAttribute.cs
- WebPartDisplayModeCollection.cs
- RotateTransform.cs
- EventWaitHandle.cs
- XmlNodeReader.cs
- ValueQuery.cs
- SeverityFilter.cs
- OpacityConverter.cs
- ProcessHostMapPath.cs
- UnsupportedPolicyOptionsException.cs
- GridPattern.cs
- DecoderReplacementFallback.cs
- TreeNodeSelectionProcessor.cs
- SafeThemeHandle.cs
- CompiledQuery.cs
- ButtonPopupAdapter.cs
- PropertyDescriptorGridEntry.cs
- DefaultSection.cs
- ScriptControl.cs
- EntityDataSourceSelectingEventArgs.cs
- LoadWorkflowCommand.cs
- SerializationException.cs
- SplitContainer.cs
- SoapExtension.cs
- GeometryCombineModeValidation.cs
- LexicalChunk.cs
- PtsContext.cs
- SendActivity.cs
- SmtpCommands.cs
- SchemaAttDef.cs
- ImageFormatConverter.cs
- UpdateException.cs
- HttpException.cs
- TextElementEditingBehaviorAttribute.cs
- InputBinder.cs
- KeyedCollection.cs
- Win32MouseDevice.cs
- AutomationIdentifier.cs
- CompiledELinqQueryState.cs
- OperatingSystemVersionCheck.cs
- ObjectFactoryCodeDomTreeGenerator.cs
- AnnotationAdorner.cs
- FlowDocumentReaderAutomationPeer.cs
- DiagnosticStrings.cs
- SmtpSection.cs
- XmlComment.cs
- SoapWriter.cs
- UniqueIdentifierService.cs
- TransactionManager.cs
- MouseCaptureWithinProperty.cs
- thaishape.cs
- ScriptReferenceEventArgs.cs
- Site.cs
- CompiledRegexRunner.cs
- SelectionItemPattern.cs
- StatusBarAutomationPeer.cs
- NamedPipeActivation.cs
- XmlIlTypeHelper.cs
- SystemFonts.cs
- Assembly.cs
- SBCSCodePageEncoding.cs
- ManagedWndProcTracker.cs
- HttpModuleAction.cs
- ListCardsInFileRequest.cs
- ImageList.cs
- ArrayConverter.cs
- EventLogInformation.cs
- XmlSchemaChoice.cs
- RecordsAffectedEventArgs.cs
- EventRecordWrittenEventArgs.cs
- XmlNodeChangedEventArgs.cs
- ValueCollectionParameterReader.cs
- ConfigXmlText.cs
- OutputCacheSettings.cs
- ClientConfigPaths.cs
- MessageBox.cs
- PersianCalendar.cs
- StylusPointPropertyInfoDefaults.cs
- Style.cs
- ResXResourceSet.cs
- StringDictionary.cs
- SmiTypedGetterSetter.cs
- DBSchemaTable.cs
- ProcessProtocolHandler.cs
- RotateTransform3D.cs