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
- TextTreeInsertUndoUnit.cs
- PeerApplication.cs
- MessageHeaderDescription.cs
- RenderingBiasValidation.cs
- SiteOfOriginPart.cs
- LineGeometry.cs
- MonikerUtility.cs
- CompositeKey.cs
- CatalogPartCollection.cs
- ComplexLine.cs
- GroupStyle.cs
- MenuItemStyleCollection.cs
- ManagementException.cs
- SmtpFailedRecipientException.cs
- ProcessHost.cs
- IPAddress.cs
- OledbConnectionStringbuilder.cs
- GridViewSelectEventArgs.cs
- BamlBinaryWriter.cs
- DataGridViewCellToolTipTextNeededEventArgs.cs
- NegatedCellConstant.cs
- EditorPart.cs
- OneWayBindingElementImporter.cs
- XPathArrayIterator.cs
- KeysConverter.cs
- FunctionImportMapping.cs
- IgnoreDeviceFilterElement.cs
- LogWriteRestartAreaAsyncResult.cs
- COM2PropertyDescriptor.cs
- _ConnectStream.cs
- Literal.cs
- SqlTrackingQuery.cs
- BuildProvider.cs
- XmlSchemaParticle.cs
- ProfileManager.cs
- TextFormatterHost.cs
- ObjectItemNoOpAssemblyLoader.cs
- SmiMetaDataProperty.cs
- SqlTriggerContext.cs
- DbTransaction.cs
- Brush.cs
- RIPEMD160.cs
- X509CertificateChain.cs
- Mutex.cs
- UIElementParaClient.cs
- TextRunTypographyProperties.cs
- SapiRecognizer.cs
- assemblycache.cs
- _Events.cs
- KeyboardEventArgs.cs
- AxWrapperGen.cs
- TextEditorContextMenu.cs
- FilterQuery.cs
- ScrollChrome.cs
- FrameworkElementFactoryMarkupObject.cs
- ConcurrentDictionary.cs
- DbSetClause.cs
- MimeTypeAttribute.cs
- IntSecurity.cs
- Screen.cs
- CreateBookmarkScope.cs
- LogPolicy.cs
- DataGridViewCheckBoxCell.cs
- EdmToObjectNamespaceMap.cs
- ControlIdConverter.cs
- Container.cs
- ProgressBar.cs
- SqlProfileProvider.cs
- CallInfo.cs
- CustomCategoryAttribute.cs
- PageHandlerFactory.cs
- NavigatorInput.cs
- CodeMemberMethod.cs
- SqlCachedBuffer.cs
- ToolStripSeparatorRenderEventArgs.cs
- QuaternionAnimationBase.cs
- EmbeddedMailObjectsCollection.cs
- ClientTargetSection.cs
- _SecureChannel.cs
- BinaryObjectInfo.cs
- FullTextLine.cs
- PageContentCollection.cs
- Attributes.cs
- ProviderBase.cs
- AutomationPropertyChangedEventArgs.cs
- Vector.cs
- FrameworkContextData.cs
- PolyBezierSegmentFigureLogic.cs
- EditCommandColumn.cs
- ObjectItemCachedAssemblyLoader.cs
- LogWriteRestartAreaState.cs
- DateTimeConstantAttribute.cs
- LogSwitch.cs
- SqlStream.cs
- Rectangle.cs
- MultiByteCodec.cs
- MetadataItem_Static.cs
- DataGridViewRowPostPaintEventArgs.cs
- ResXBuildProvider.cs
- LiteralTextContainerControlBuilder.cs