Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / Net / System / Net / Configuration / AuthenticationModulesSection.cs / 1305376 / 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); } 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; } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------------------------ // // 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); } 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; } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- RadioButton.cs
- AssertFilter.cs
- ListenDesigner.cs
- X509SubjectKeyIdentifierClause.cs
- DesignTimeDataBinding.cs
- ProxyManager.cs
- VisualTarget.cs
- Funcletizer.cs
- DesignTimeParseData.cs
- SqlClientWrapperSmiStreamChars.cs
- SerializerWriterEventHandlers.cs
- TextEditorLists.cs
- PermissionToken.cs
- ToolBarPanel.cs
- UidManager.cs
- TempFiles.cs
- HelpProvider.cs
- ExcludePathInfo.cs
- PriorityBinding.cs
- StorageComplexPropertyMapping.cs
- BaseConfigurationRecord.cs
- FunctionQuery.cs
- WebServiceEnumData.cs
- ConfigurationLocationCollection.cs
- StaticSiteMapProvider.cs
- PropertyMapper.cs
- CodeDelegateInvokeExpression.cs
- Frame.cs
- ToolboxBitmapAttribute.cs
- ToolboxComponentsCreatingEventArgs.cs
- HandleDictionary.cs
- ArglessEventHandlerProxy.cs
- ByteFacetDescriptionElement.cs
- ObjectDataSourceView.cs
- ParallelQuery.cs
- Camera.cs
- PerformanceCounterTraceRecord.cs
- ToolZone.cs
- ScheduleChanges.cs
- Parameter.cs
- CompiledRegexRunner.cs
- DynamicValueConverter.cs
- IdentifierService.cs
- DiscoveryDocumentSerializer.cs
- DeferredElementTreeState.cs
- MethodCallConverter.cs
- Rfc2898DeriveBytes.cs
- DTCTransactionManager.cs
- DatePickerTextBox.cs
- EmptyImpersonationContext.cs
- WebGetAttribute.cs
- SparseMemoryStream.cs
- AsyncContentLoadedEventArgs.cs
- LockRecursionException.cs
- EntityClassGenerator.cs
- DataGridViewToolTip.cs
- FormViewDesigner.cs
- WebSysDescriptionAttribute.cs
- TransformGroup.cs
- PrivilegedConfigurationManager.cs
- XmlSchemaObjectTable.cs
- GroupLabel.cs
- DerivedKeyCachingSecurityTokenSerializer.cs
- XmlEncodedRawTextWriter.cs
- TakeOrSkipWhileQueryOperator.cs
- IDReferencePropertyAttribute.cs
- MissingMethodException.cs
- SspiSecurityTokenParameters.cs
- FontNameEditor.cs
- ResourceManagerWrapper.cs
- TreeBuilder.cs
- TransferRequestHandler.cs
- RequestQueryProcessor.cs
- ParameterReplacerVisitor.cs
- SoapDocumentServiceAttribute.cs
- DecimalStorage.cs
- ConsoleKeyInfo.cs
- CodeConditionStatement.cs
- GifBitmapDecoder.cs
- Events.cs
- LinqDataSource.cs
- LoginCancelEventArgs.cs
- Quaternion.cs
- WindowAutomationPeer.cs
- AbandonedMutexException.cs
- TraceLog.cs
- ToolBarPanel.cs
- SoapSchemaExporter.cs
- Button.cs
- DataTableReader.cs
- IsolatedStorageFilePermission.cs
- TemplateNameScope.cs
- XmlQueryContext.cs
- XPathAxisIterator.cs
- DictionaryContent.cs
- ArgumentNullException.cs
- ProxyWebPart.cs
- FontWeights.cs
- BaseProcessor.cs
- XmlReader.cs