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
- WebPartCollection.cs
- MenuCommandsChangedEventArgs.cs
- ProviderBase.cs
- XPathExpr.cs
- SoapObjectReader.cs
- CodeLinePragma.cs
- XmlSchemaSimpleTypeRestriction.cs
- glyphs.cs
- Empty.cs
- HotSpot.cs
- Point3DCollection.cs
- FreeFormDragDropManager.cs
- Sentence.cs
- SchemaImporterExtensionElementCollection.cs
- SR.cs
- LassoSelectionBehavior.cs
- DataGridViewLinkCell.cs
- AffineTransform3D.cs
- TypeUsage.cs
- SafeReadContext.cs
- BitmapEffect.cs
- SymLanguageType.cs
- ResponseStream.cs
- XsltFunctions.cs
- IncrementalReadDecoders.cs
- SortedList.cs
- IndentedWriter.cs
- GenericTextProperties.cs
- ContainerControl.cs
- ExceptionHandlerDesigner.cs
- PeerNameResolver.cs
- DataGridHeaderBorder.cs
- WebServiceData.cs
- ScriptResourceHandler.cs
- FixedDocumentSequencePaginator.cs
- Rijndael.cs
- GetIndexBinder.cs
- OleServicesContext.cs
- TemplateControl.cs
- SignatureDescription.cs
- SortDescription.cs
- XmlSchemaElement.cs
- WorkflowHostingEndpoint.cs
- PersonalizationStateInfoCollection.cs
- TypeConverterHelper.cs
- PropertySegmentSerializer.cs
- CompilerError.cs
- TimeoutConverter.cs
- ExceptionNotification.cs
- WebPartConnectionsCloseVerb.cs
- Stacktrace.cs
- SchemaSetCompiler.cs
- _ProxyChain.cs
- CalendarBlackoutDatesCollection.cs
- AssemblyCollection.cs
- ModifierKeysConverter.cs
- RuntimeConfig.cs
- DependentList.cs
- Activator.cs
- GenerateScriptTypeAttribute.cs
- Command.cs
- CompositionCommandSet.cs
- HttpHandlerAction.cs
- RenamedEventArgs.cs
- DbgUtil.cs
- DataGridViewHeaderCell.cs
- ToolStripSplitButton.cs
- LowerCaseStringConverter.cs
- _Semaphore.cs
- LineGeometry.cs
- DecimalAnimationBase.cs
- Send.cs
- GeneralTransformCollection.cs
- RegexWriter.cs
- KeyValueConfigurationElement.cs
- StyleModeStack.cs
- EventRoute.cs
- BufferModeSettings.cs
- OdbcCommand.cs
- PaperSize.cs
- MDIWindowDialog.cs
- ListBoxChrome.cs
- DesignerHost.cs
- SoapFault.cs
- RegexMatch.cs
- CheckBox.cs
- OleDbDataReader.cs
- TimeSpanValidatorAttribute.cs
- WeakRefEnumerator.cs
- RightsManagementPermission.cs
- BaseCollection.cs
- XmlDataCollection.cs
- BuildResultCache.cs
- securitycriticaldataformultiplegetandset.cs
- ObjectView.cs
- FixedSOMFixedBlock.cs
- RouteParser.cs
- SqlDataSourceRefreshSchemaForm.cs
- SubstitutionList.cs
- InputLangChangeEvent.cs