Code:
/ FX-1434 / FX-1434 / 1.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
- AuthenticationManager.cs
- XmlLoader.cs
- FileFormatException.cs
- SqlStatistics.cs
- SafeCryptContextHandle.cs
- CompressedStack.cs
- RedistVersionInfo.cs
- _ScatterGatherBuffers.cs
- ThicknessAnimationBase.cs
- ObjectDataSourceStatusEventArgs.cs
- Quaternion.cs
- OdbcPermission.cs
- SequentialUshortCollection.cs
- DependencyPropertyDescriptor.cs
- TimelineGroup.cs
- SqlReferenceCollection.cs
- BinaryFormatterWriter.cs
- PeerTransportListenAddressValidatorAttribute.cs
- AppModelKnownContentFactory.cs
- ToolStripRenderer.cs
- WeakRefEnumerator.cs
- SBCSCodePageEncoding.cs
- OdbcHandle.cs
- VisualSerializer.cs
- FillRuleValidation.cs
- ImpersonateTokenRef.cs
- MessageLogger.cs
- TabPanel.cs
- KeyGesture.cs
- BitmapVisualManager.cs
- CleanUpVirtualizedItemEventArgs.cs
- LayoutEvent.cs
- CounterSample.cs
- TextMarkerSource.cs
- TextBoxLine.cs
- XXXInfos.cs
- SharedMemory.cs
- KeyTimeConverter.cs
- NoClickablePointException.cs
- httpstaticobjectscollection.cs
- BitmapMetadata.cs
- SqlCacheDependencyDatabaseCollection.cs
- StaticContext.cs
- WSTrust.cs
- TargetFrameworkAttribute.cs
- SignatureResourcePool.cs
- CollectionTypeElement.cs
- CharAnimationBase.cs
- TraceListener.cs
- EntityModelSchemaGenerator.cs
- PerspectiveCamera.cs
- CodeEventReferenceExpression.cs
- WebResourceAttribute.cs
- SizeValueSerializer.cs
- QuaternionAnimation.cs
- GlyphRunDrawing.cs
- NamedPipeProcessProtocolHandler.cs
- _NegotiateClient.cs
- SmtpCommands.cs
- SettingsBase.cs
- ContractCodeDomInfo.cs
- TypeSystem.cs
- IDispatchConstantAttribute.cs
- SRef.cs
- TypedTableGenerator.cs
- CompensationTokenData.cs
- PhoneCall.cs
- ServiceHost.cs
- ColumnMapTranslator.cs
- StorageAssociationSetMapping.cs
- SectionRecord.cs
- ChangeConflicts.cs
- SQLGuid.cs
- TextTreeUndoUnit.cs
- ISAPIRuntime.cs
- ActiveDocumentEvent.cs
- ListBoxItem.cs
- FileNotFoundException.cs
- TypeDescriptionProviderAttribute.cs
- Perspective.cs
- PageBuildProvider.cs
- HandlerBase.cs
- SqlBulkCopy.cs
- TransactionProxy.cs
- XmlDataSource.cs
- CommandPlan.cs
- BuildProviderUtils.cs
- FunctionImportElement.cs
- TextBlockAutomationPeer.cs
- Wildcard.cs
- HtmlToClrEventProxy.cs
- ListenDesigner.cs
- ColorPalette.cs
- DbModificationCommandTree.cs
- EncodingNLS.cs
- Enumerable.cs
- ReflectionTypeLoadException.cs
- SchemaImporter.cs
- IpcChannelHelper.cs
- TransactionContextManager.cs