Code:
/ DotNET / DotNET / 8.0 / untmp / whidbey / REDBITS / 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;
}
}
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- SizeChangedEventArgs.cs
- XsdBuildProvider.cs
- Error.cs
- SoapFormatter.cs
- LookupNode.cs
- sqlser.cs
- OdbcConnectionPoolProviderInfo.cs
- Floater.cs
- AppDomainResourcePerfCounters.cs
- CustomAttributeBuilder.cs
- DataTableMappingCollection.cs
- Compensate.cs
- WebBrowserEvent.cs
- VideoDrawing.cs
- KeyConverter.cs
- TextTreeTextBlock.cs
- RsaSecurityToken.cs
- FormViewRow.cs
- StateDesigner.Layouts.cs
- PropertyGeneratedEventArgs.cs
- BehaviorEditorPart.cs
- TextChange.cs
- ResXBuildProvider.cs
- EncodingInfo.cs
- RequestCacheEntry.cs
- CodeChecksumPragma.cs
- EnumBuilder.cs
- TextShapeableCharacters.cs
- PageThemeCodeDomTreeGenerator.cs
- SmtpSpecifiedPickupDirectoryElement.cs
- Evaluator.cs
- WindowShowOrOpenTracker.cs
- HttpResponseHeader.cs
- LocalizedNameDescriptionPair.cs
- Touch.cs
- MachineKeyConverter.cs
- GifBitmapDecoder.cs
- TextSchema.cs
- InkPresenter.cs
- FormsAuthenticationCredentials.cs
- WindowsRichEditRange.cs
- FixedDocumentSequencePaginator.cs
- ScopeElement.cs
- HttpInputStream.cs
- DataServiceBehavior.cs
- FreezableOperations.cs
- FixedSOMSemanticBox.cs
- TextTreeNode.cs
- _CacheStreams.cs
- StringFreezingAttribute.cs
- SqlPersonalizationProvider.cs
- ResourcesBuildProvider.cs
- ScrollChrome.cs
- AmbientValueAttribute.cs
- SafeHandles.cs
- VisualStateManager.cs
- RtfControlWordInfo.cs
- ConnectionStringSettingsCollection.cs
- FontStyleConverter.cs
- Attributes.cs
- ServiceChannelManager.cs
- DataGridViewLinkColumn.cs
- Wizard.cs
- ConsoleKeyInfo.cs
- RoutedEventValueSerializer.cs
- TransactionValidationBehavior.cs
- TextParaClient.cs
- WorkflowOperationAsyncResult.cs
- Figure.cs
- TextEditorTyping.cs
- BindingElementExtensionElement.cs
- SecurityPolicyVersion.cs
- RawTextInputReport.cs
- Soap.cs
- EditingCoordinator.cs
- OleDbDataReader.cs
- ColumnCollection.cs
- MergeLocalizationDirectives.cs
- ipaddressinformationcollection.cs
- Size3D.cs
- CSharpCodeProvider.cs
- DetailsView.cs
- TextTreeInsertUndoUnit.cs
- StateDesigner.Layouts.cs
- DataGridTableCollection.cs
- EncryptedKey.cs
- VideoDrawing.cs
- NegatedConstant.cs
- Effect.cs
- DnsPermission.cs
- ObsoleteAttribute.cs
- XmlJsonReader.cs
- DeploymentExceptionMapper.cs
- unitconverter.cs
- OdbcFactory.cs
- RtType.cs
- ToggleProviderWrapper.cs
- CultureMapper.cs
- KnownBoxes.cs
- TypeUtil.cs