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
- ContractSearchPattern.cs
- WebPartPersonalization.cs
- AutomationElementCollection.cs
- EdmToObjectNamespaceMap.cs
- EventMappingSettings.cs
- DispatcherEventArgs.cs
- TextReader.cs
- DataGridRow.cs
- SimpleTextLine.cs
- ShaderEffect.cs
- InstallerTypeAttribute.cs
- TemplatedWizardStep.cs
- FormClosedEvent.cs
- InfoCardSymmetricCrypto.cs
- SamlAuthenticationClaimResource.cs
- ClientUIRequest.cs
- AppDomainManager.cs
- MaskedTextBoxDesignerActionList.cs
- Parsers.cs
- DataBoundControlAdapter.cs
- WebBrowser.cs
- EmptyCollection.cs
- DecimalKeyFrameCollection.cs
- BrowserCapabilitiesFactory.cs
- RegexGroupCollection.cs
- IntegerValidatorAttribute.cs
- CompositionTarget.cs
- MethodRental.cs
- SetStateDesigner.cs
- RangeEnumerable.cs
- RadioButton.cs
- XmlNodeList.cs
- Directory.cs
- RelOps.cs
- Unit.cs
- ToolStripPanelRenderEventArgs.cs
- DataServiceProcessingPipeline.cs
- ManagementNamedValueCollection.cs
- StateItem.cs
- FieldBuilder.cs
- AttachedPropertyBrowsableAttribute.cs
- PointKeyFrameCollection.cs
- SafeCryptContextHandle.cs
- WebProxyScriptElement.cs
- ScriptingRoleServiceSection.cs
- WhitespaceRule.cs
- MiniAssembly.cs
- GridViewAutomationPeer.cs
- ResourceDisplayNameAttribute.cs
- ProcessManager.cs
- ReachDocumentPageSerializerAsync.cs
- EncoderFallback.cs
- TargetException.cs
- RtfControlWordInfo.cs
- DoubleLinkList.cs
- NopReturnReader.cs
- Metafile.cs
- AutoCompleteStringCollection.cs
- SoapSchemaImporter.cs
- SoapMessage.cs
- DataBinding.cs
- EntityContainer.cs
- ScriptControlManager.cs
- DbParameterCollectionHelper.cs
- BindingsCollection.cs
- IListConverters.cs
- EncodingTable.cs
- DescendentsWalkerBase.cs
- SpecialNameAttribute.cs
- EditorPartDesigner.cs
- ObjectAnimationBase.cs
- MenuEventArgs.cs
- ConfigXmlSignificantWhitespace.cs
- DbMetaDataColumnNames.cs
- ColorKeyFrameCollection.cs
- InputManager.cs
- StringResourceManager.cs
- CommonObjectSecurity.cs
- GridViewDesigner.cs
- ActivityPreviewDesigner.cs
- WebEventTraceProvider.cs
- WorkflowRuntime.cs
- ModelVisual3D.cs
- ParallelEnumerableWrapper.cs
- URLMembershipCondition.cs
- OutOfMemoryException.cs
- AnnotationObservableCollection.cs
- EventMappingSettingsCollection.cs
- Line.cs
- Asn1IntegerConverter.cs
- DBDataPermissionAttribute.cs
- DataGridHeaderBorder.cs
- SelectedDatesCollection.cs
- RegexReplacement.cs
- SystemBrushes.cs
- CompositionTarget.cs
- ResourceAttributes.cs
- StagingAreaInputItem.cs
- EncryptedData.cs
- ToolStripSeparator.cs