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
- EntityChangedParams.cs
- GridItemPatternIdentifiers.cs
- XamlFigureLengthSerializer.cs
- DefaultEventAttribute.cs
- CompiledRegexRunner.cs
- DrawingContextWalker.cs
- DebugHandleTracker.cs
- XmlNamespaceDeclarationsAttribute.cs
- PartialArray.cs
- RadioButtonAutomationPeer.cs
- HtmlInputHidden.cs
- TrackBarRenderer.cs
- TriState.cs
- NativeMethods.cs
- CustomTrackingQuery.cs
- XamlReaderConstants.cs
- PasswordRecovery.cs
- ComponentDispatcherThread.cs
- loginstatus.cs
- ConfigurationSettings.cs
- NegotiationTokenAuthenticatorState.cs
- WmlLabelAdapter.cs
- StaticExtensionConverter.cs
- HelpKeywordAttribute.cs
- FixedSOMPageConstructor.cs
- ThreadNeutralSemaphore.cs
- ArrayConverter.cs
- TextTreeExtractElementUndoUnit.cs
- CapabilitiesAssignment.cs
- PointAnimationUsingKeyFrames.cs
- XamlSerializer.cs
- InstanceData.cs
- BrushValueSerializer.cs
- HttpCookieCollection.cs
- KnownTypesProvider.cs
- InputDevice.cs
- KeyProperty.cs
- StateWorkerRequest.cs
- EnterpriseServicesHelper.cs
- BitmapCacheBrush.cs
- CuspData.cs
- DataContractSerializerSection.cs
- SqlLiftIndependentRowExpressions.cs
- MachineKeySection.cs
- SchemaNotation.cs
- ObjectStateFormatter.cs
- ContextQuery.cs
- JavaScriptObjectDeserializer.cs
- GeometryDrawing.cs
- FileLoadException.cs
- Canvas.cs
- Version.cs
- ApplicationException.cs
- HttpHandlersInstallComponent.cs
- XmlReflectionMember.cs
- FormsAuthenticationUserCollection.cs
- CodeLinePragma.cs
- OutOfProcStateClientManager.cs
- AbandonedMutexException.cs
- TemplateBamlTreeBuilder.cs
- WebUtil.cs
- MessageQuerySet.cs
- CreateRefExpr.cs
- PolyLineSegment.cs
- ipaddressinformationcollection.cs
- DictionaryEditChange.cs
- Baml2006ReaderContext.cs
- VirtualizingStackPanel.cs
- HttpCacheVaryByContentEncodings.cs
- BuildManagerHost.cs
- SqlMultiplexer.cs
- AsyncOperationContext.cs
- WizardPanelChangingEventArgs.cs
- LayoutEvent.cs
- SectionXmlInfo.cs
- TableLayoutPanelCellPosition.cs
- CSharpCodeProvider.cs
- SHA256.cs
- DataGridViewCheckBoxColumn.cs
- EqualityComparer.cs
- ItemChangedEventArgs.cs
- Binding.cs
- HostTimeoutsElement.cs
- ReadOnlyCollection.cs
- ElementHostAutomationPeer.cs
- SqlAliasesReferenced.cs
- WsdlBuildProvider.cs
- ScriptRef.cs
- SplineQuaternionKeyFrame.cs
- FileChangesMonitor.cs
- BridgeDataReader.cs
- COM2ExtendedBrowsingHandler.cs
- DiagnosticTrace.cs
- WithStatement.cs
- CodeAttributeDeclaration.cs
- TimeSpanSecondsConverter.cs
- DefaultParameterValueAttribute.cs
- DataDocumentXPathNavigator.cs
- TypedElement.cs
- StrongNamePublicKeyBlob.cs