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
- DataGridView.cs
- CharConverter.cs
- TraceLevelStore.cs
- DataView.cs
- NativeCppClassAttribute.cs
- SequentialUshortCollection.cs
- FlowLayout.cs
- Transform.cs
- ManifestResourceInfo.cs
- ByteStorage.cs
- SByte.cs
- FlowSwitchDesigner.xaml.cs
- CompressedStack.cs
- ProcessThreadCollection.cs
- ServiceNameCollection.cs
- DataGridViewRowCancelEventArgs.cs
- InputChannelAcceptor.cs
- HelpKeywordAttribute.cs
- ExpressionEvaluator.cs
- DetailsViewDeleteEventArgs.cs
- HtmlInputControl.cs
- HtmlTextArea.cs
- LiteralControl.cs
- GlyphCache.cs
- EventLogPermissionEntryCollection.cs
- TraceEventCache.cs
- CellIdBoolean.cs
- TemplateBuilder.cs
- PrivilegedConfigurationManager.cs
- WindowsAltTab.cs
- COM2PropertyDescriptor.cs
- PKCS1MaskGenerationMethod.cs
- ToolBarButton.cs
- KeyManager.cs
- FlatButtonAppearance.cs
- AnonymousIdentificationModule.cs
- EndpointDispatcher.cs
- EmptyCollection.cs
- Deserializer.cs
- TransactionManager.cs
- ActiveXSite.cs
- SettingsPropertyWrongTypeException.cs
- HttpRequestCacheValidator.cs
- DictionaryEntry.cs
- Query.cs
- ModelItem.cs
- KnowledgeBase.cs
- CaretElement.cs
- MaxValueConverter.cs
- ThreadNeutralSemaphore.cs
- DataGridViewRowHeaderCell.cs
- DataGridViewColumnTypePicker.cs
- _ProxyRegBlob.cs
- PanelStyle.cs
- StackOverflowException.cs
- DBNull.cs
- ArraySortHelper.cs
- NetworkAddressChange.cs
- CharacterHit.cs
- RadioButtonRenderer.cs
- PrivilegeNotHeldException.cs
- OwnerDrawPropertyBag.cs
- VerificationException.cs
- Random.cs
- StrokeFIndices.cs
- RayHitTestParameters.cs
- FontEditor.cs
- GB18030Encoding.cs
- ConfigurationSectionHelper.cs
- GroupBox.cs
- OleDbException.cs
- BorderGapMaskConverter.cs
- Border.cs
- BinaryCommonClasses.cs
- XmlDataDocument.cs
- XmlLinkedNode.cs
- BuildProviderCollection.cs
- Utils.cs
- TextElementCollection.cs
- QuerySettings.cs
- CacheDependency.cs
- SoapAttributeOverrides.cs
- FixedBufferAttribute.cs
- OptimizedTemplateContentHelper.cs
- SemanticTag.cs
- CheckBoxField.cs
- Int32RectValueSerializer.cs
- AggregatePushdown.cs
- HttpCacheVary.cs
- CompositeControl.cs
- XmlRawWriter.cs
- GeneralTransform3D.cs
- HttpDebugHandler.cs
- PasswordDeriveBytes.cs
- WebPartDisplayModeCollection.cs
- CustomTrackingRecord.cs
- VideoDrawing.cs
- DrawingContext.cs
- OleDbRowUpdatedEvent.cs
- figurelengthconverter.cs