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
- TemplateXamlTreeBuilder.cs
- PolygonHotSpot.cs
- ReliableMessagingVersionConverter.cs
- HandoffBehavior.cs
- SafeNativeMethods.cs
- TemplateBaseAction.cs
- SimpleFileLog.cs
- SerializationFieldInfo.cs
- AtomEntry.cs
- ObjectDataSourceStatusEventArgs.cs
- AffineTransform3D.cs
- __TransparentProxy.cs
- Stack.cs
- LinearGradientBrush.cs
- PriorityBindingExpression.cs
- cryptoapiTransform.cs
- OleDbParameterCollection.cs
- DbModificationClause.cs
- PrintingPermission.cs
- SrgsRulesCollection.cs
- XmlValidatingReaderImpl.cs
- _UriSyntax.cs
- CqlLexer.cs
- CommonObjectSecurity.cs
- SpStreamWrapper.cs
- WinFormsUtils.cs
- ConstructorNeedsTagAttribute.cs
- Rect3D.cs
- PropertyEmitterBase.cs
- ScrollBarAutomationPeer.cs
- ObservableCollection.cs
- CLRBindingWorker.cs
- CryptoKeySecurity.cs
- LicenseContext.cs
- TransformConverter.cs
- TextTreeRootTextBlock.cs
- ProcessThreadCollection.cs
- RoleManagerEventArgs.cs
- Blend.cs
- CompositeCollectionView.cs
- DoubleAnimationClockResource.cs
- ComponentGlyph.cs
- LambdaCompiler.Address.cs
- EdmProperty.cs
- MenuAutomationPeer.cs
- GridViewSelectEventArgs.cs
- ProgressBarHighlightConverter.cs
- FixedSOMElement.cs
- SqlLiftWhereClauses.cs
- EventProperty.cs
- UIntPtr.cs
- DocumentPageViewAutomationPeer.cs
- ResourcePermissionBaseEntry.cs
- CursorConverter.cs
- Propagator.cs
- MergePropertyDescriptor.cs
- Util.cs
- DefinitionUpdate.cs
- SlipBehavior.cs
- cookiecollection.cs
- CheckBoxField.cs
- DefaultHttpHandler.cs
- SchemaImporterExtension.cs
- IconHelper.cs
- ColumnBinding.cs
- UnionCqlBlock.cs
- HashCodeCombiner.cs
- BatchParser.cs
- SimpleMailWebEventProvider.cs
- DiscoveryDocumentSearchPattern.cs
- ListItemConverter.cs
- PropertyInformation.cs
- DiscardableAttribute.cs
- OptionUsage.cs
- ProfileParameter.cs
- PrivacyNoticeElement.cs
- SerializationHelper.cs
- PlainXmlWriter.cs
- StringUtil.cs
- GetKeyedHashRequest.cs
- WindowShowOrOpenTracker.cs
- ImageCodecInfo.cs
- TimelineGroup.cs
- AutomationEvent.cs
- OrderedDictionaryStateHelper.cs
- FacetValueContainer.cs
- QuaternionAnimationUsingKeyFrames.cs
- NativeMethods.cs
- XmlILConstructAnalyzer.cs
- OdbcErrorCollection.cs
- QueueProcessor.cs
- MeshGeometry3D.cs
- EncodingNLS.cs
- OracleColumn.cs
- EditingCommands.cs
- QilGeneratorEnv.cs
- IconHelper.cs
- WindowProviderWrapper.cs
- BindingObserver.cs
- UnsafeNativeMethods.cs