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
- MSAANativeProvider.cs
- TypeSystem.cs
- WebRequest.cs
- BrowserInteropHelper.cs
- SqlError.cs
- IMembershipProvider.cs
- UnconditionalPolicy.cs
- CodeAttachEventStatement.cs
- PageRequestManager.cs
- _SslSessionsCache.cs
- ReferenceEqualityComparer.cs
- HttpFormatExtensions.cs
- MinimizableAttributeTypeConverter.cs
- RenderingEventArgs.cs
- XmlDataDocument.cs
- Menu.cs
- StoreItemCollection.cs
- SaveCardRequest.cs
- StorageComplexPropertyMapping.cs
- HandlerFactoryCache.cs
- ClientBuildManagerCallback.cs
- ControlBuilder.cs
- RTLAwareMessageBox.cs
- PeerDuplexChannelListener.cs
- PolyQuadraticBezierSegment.cs
- XPathScanner.cs
- commandenforcer.cs
- InProcStateClientManager.cs
- _NtlmClient.cs
- ItemChangedEventArgs.cs
- AnnotationComponentManager.cs
- XamlFigureLengthSerializer.cs
- DataGridRow.cs
- ServiceMetadataBehavior.cs
- HttpStreamMessageEncoderFactory.cs
- ListBoxItemWrapperAutomationPeer.cs
- IIS7ConfigurationLoader.cs
- Sequence.cs
- CheckPair.cs
- ConfigurationValue.cs
- HtmlElementEventArgs.cs
- TemplateField.cs
- BezierSegment.cs
- RequestDescription.cs
- WinInet.cs
- ProgressiveCrcCalculatingStream.cs
- ConfigXmlWhitespace.cs
- WindowsBrush.cs
- DetailsViewModeEventArgs.cs
- SymbolDocumentInfo.cs
- NotificationContext.cs
- TraceSection.cs
- XmlUnspecifiedAttribute.cs
- PassportPrincipal.cs
- MessageQueueAccessControlEntry.cs
- SequenceDesignerAccessibleObject.cs
- ConfigurationManagerHelperFactory.cs
- EnumConverter.cs
- DeferredBinaryDeserializerExtension.cs
- BindingsCollection.cs
- HttpCookieCollection.cs
- ValidatorAttribute.cs
- DeviceFiltersSection.cs
- ReceiveContent.cs
- PassportPrincipal.cs
- TraceContext.cs
- DataGridItem.cs
- FileSystemInfo.cs
- MediaTimeline.cs
- TransformCryptoHandle.cs
- TableHeaderCell.cs
- Symbol.cs
- OperationContractGenerationContext.cs
- PackagingUtilities.cs
- Vector3D.cs
- WebPartsPersonalization.cs
- TableCell.cs
- FloaterParagraph.cs
- DataTableReaderListener.cs
- PenThreadPool.cs
- ListParagraph.cs
- TdsParserStaticMethods.cs
- SignatureDescription.cs
- ConfigurationValidatorAttribute.cs
- HttpContextServiceHost.cs
- _LazyAsyncResult.cs
- ProfilePropertySettings.cs
- SemanticBasicElement.cs
- ListViewItem.cs
- codemethodreferenceexpression.cs
- KeyManager.cs
- IIS7UserPrincipal.cs
- TextBoxAutomationPeer.cs
- ExtensionsSection.cs
- MiniConstructorInfo.cs
- WindowsListViewScroll.cs
- WCFBuildProvider.cs
- QueryTask.cs
- Bold.cs
- ColumnBinding.cs