Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / ServiceModel / System / ServiceModel / Configuration / UserNameServiceElement.cs / 1 / UserNameServiceElement.cs
//------------------------------------------------------------------------------
// Copyright (c) Microsoft Corporation. All rights reserved.
//-----------------------------------------------------------------------------
namespace System.ServiceModel.Configuration
{
using System;
using System.ServiceModel;
using System.Configuration;
using System.ServiceModel.Security;
using System.Xml;
using System.IdentityModel.Selectors;
using System.ComponentModel;
public sealed partial class UserNameServiceElement : ConfigurationElement
{
public UserNameServiceElement()
{
}
[ConfigurationProperty(ConfigurationStrings.UserNamePasswordValidationMode, DefaultValue = UserNamePasswordServiceCredential.DefaultUserNamePasswordValidationMode)]
[ServiceModelEnumValidator(typeof(UserNamePasswordValidationModeHelper))]
public UserNamePasswordValidationMode UserNamePasswordValidationMode
{
get { return (UserNamePasswordValidationMode)base[ConfigurationStrings.UserNamePasswordValidationMode]; }
set { base[ConfigurationStrings.UserNamePasswordValidationMode] = value; }
}
[ConfigurationProperty(ConfigurationStrings.IncludeWindowsGroups, DefaultValue = SspiSecurityTokenProvider.DefaultExtractWindowsGroupClaims)]
public bool IncludeWindowsGroups
{
get { return (bool)base[ConfigurationStrings.IncludeWindowsGroups]; }
set { base[ConfigurationStrings.IncludeWindowsGroups] = value; }
}
[ConfigurationProperty(ConfigurationStrings.MembershipProviderName, DefaultValue = "")]
[StringValidator(MinLength = 0)]
public string MembershipProviderName
{
get { return (string)base[ConfigurationStrings.MembershipProviderName]; }
set
{
if (String.IsNullOrEmpty(value))
{
value = String.Empty;
}
base[ConfigurationStrings.MembershipProviderName] = value;
}
}
[ConfigurationProperty(ConfigurationStrings.CustomUserNamePasswordValidatorType, DefaultValue = "")]
[StringValidator(MinLength = 0)]
public string CustomUserNamePasswordValidatorType
{
get { return (string)base[ConfigurationStrings.CustomUserNamePasswordValidatorType]; }
set
{
if (String.IsNullOrEmpty(value))
{
value = String.Empty;
}
base[ConfigurationStrings.CustomUserNamePasswordValidatorType] = value;
}
}
[ConfigurationProperty(ConfigurationStrings.CacheLogonTokens, DefaultValue = UserNamePasswordServiceCredential.DefaultCacheLogonTokens)]
public bool CacheLogonTokens
{
get { return (bool)base[ConfigurationStrings.CacheLogonTokens]; }
set { base[ConfigurationStrings.CacheLogonTokens] = value; }
}
[ConfigurationProperty(ConfigurationStrings.MaxCachedLogonTokens, DefaultValue = UserNamePasswordServiceCredential.DefaultMaxCachedLogonTokens)]
[IntegerValidator(MinValue = 1)]
public int MaxCachedLogonTokens
{
get { return (int)base[ConfigurationStrings.MaxCachedLogonTokens]; }
set { base[ConfigurationStrings.MaxCachedLogonTokens] = value; }
}
[ConfigurationProperty(ConfigurationStrings.CachedLogonTokenLifetime, DefaultValue = UserNamePasswordServiceCredential.DefaultCachedLogonTokenLifetimeString)]
[TypeConverter(typeof(TimeSpanOrInfiniteConverter))]
[ServiceModelTimeSpanValidator(MinValueString = ConfigurationStrings.TimeSpanOneTick)]
public TimeSpan CachedLogonTokenLifetime
{
get { return (TimeSpan)base[ConfigurationStrings.CachedLogonTokenLifetime]; }
set { base[ConfigurationStrings.CachedLogonTokenLifetime] = value; }
}
public void Copy(UserNameServiceElement from)
{
if (this.IsReadOnly())
{
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ConfigurationErrorsException(SR.GetString(SR.ConfigReadOnly)));
}
if (null == from)
{
throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("from");
}
this.UserNamePasswordValidationMode = from.UserNamePasswordValidationMode;
this.IncludeWindowsGroups = from.IncludeWindowsGroups;
this.MembershipProviderName = from.MembershipProviderName;
this.CustomUserNamePasswordValidatorType = from.CustomUserNamePasswordValidatorType;
this.CacheLogonTokens = from.CacheLogonTokens;
this.MaxCachedLogonTokens = from.MaxCachedLogonTokens;
this.CachedLogonTokenLifetime = from.CachedLogonTokenLifetime;
}
internal void ApplyConfiguration(UserNamePasswordServiceCredential userName)
{
if (userName == null)
{
throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("userName");
}
userName.UserNamePasswordValidationMode = this.UserNamePasswordValidationMode;
userName.IncludeWindowsGroups = this.IncludeWindowsGroups;
userName.CacheLogonTokens = this.CacheLogonTokens;
userName.MaxCachedLogonTokens = this.MaxCachedLogonTokens;
userName.CachedLogonTokenLifetime = this.CachedLogonTokenLifetime;
PropertyInformationCollection propertyInfo = this.ElementInformation.Properties;
if (propertyInfo[ConfigurationStrings.MembershipProviderName].ValueOrigin != PropertyValueOrigin.Default)
{
userName.MembershipProvider = System.Web.Security.Membership.Providers[this.MembershipProviderName];
if (userName.MembershipProvider == null)
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ConfigurationErrorsException(SR.GetString(SR.InvalidMembershipProviderSpecifiedInConfig, this.MembershipProviderName)));
}
else if (userName.UserNamePasswordValidationMode == UserNamePasswordValidationMode.MembershipProvider)
{
userName.MembershipProvider = System.Web.Security.Membership.Provider;
}
if (!string.IsNullOrEmpty(this.CustomUserNamePasswordValidatorType))
{
Type validatorType = System.Type.GetType(this.CustomUserNamePasswordValidatorType, true);
if (!typeof(UserNamePasswordValidator).IsAssignableFrom(validatorType))
{
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ConfigurationErrorsException(
SR.GetString(SR.ConfigInvalidUserNamePasswordValidatorType, this.CustomUserNamePasswordValidatorType, typeof(UserNamePasswordValidator).ToString())));
}
userName.CustomUserNamePasswordValidator = (UserNamePasswordValidator)Activator.CreateInstance(validatorType);
}
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ParameterEditorUserControl.cs
- DataGridViewBindingCompleteEventArgs.cs
- StatusBarAutomationPeer.cs
- TransactionContextManager.cs
- StaticDataManager.cs
- AlternationConverter.cs
- SR.Designer.cs
- SkewTransform.cs
- SplitterPanel.cs
- CharStorage.cs
- Cell.cs
- SafeWaitHandle.cs
- SiteMapSection.cs
- XmlChildEnumerator.cs
- ExpressionBindingCollection.cs
- Types.cs
- AttributeQuery.cs
- DataBinding.cs
- TextSpanModifier.cs
- XhtmlBasicFormAdapter.cs
- TextEditorDragDrop.cs
- mda.cs
- PropertyKey.cs
- NumberFormatInfo.cs
- Debugger.cs
- ConnectionPointCookie.cs
- Identity.cs
- EntityDataSourceContextCreatedEventArgs.cs
- GraphicsContext.cs
- BaseResourcesBuildProvider.cs
- ResourceProviderFactory.cs
- MSHTMLHost.cs
- TagMapCollection.cs
- Binding.cs
- ConsumerConnectionPoint.cs
- PenLineJoinValidation.cs
- TextSelection.cs
- SwitchElementsCollection.cs
- DataFormat.cs
- RawStylusInputCustomDataList.cs
- DataMemberFieldEditor.cs
- HostingEnvironmentWrapper.cs
- BamlResourceContent.cs
- OutOfProcStateClientManager.cs
- ConfigurationSection.cs
- RepeaterCommandEventArgs.cs
- SqlReferenceCollection.cs
- NetNamedPipeSecurityMode.cs
- _DomainName.cs
- SignatureHelper.cs
- C14NUtil.cs
- CaseCqlBlock.cs
- ActivationArguments.cs
- Transactions.cs
- EmulateRecognizeCompletedEventArgs.cs
- MessageSecurityException.cs
- WindowsToolbar.cs
- PropertyPathWorker.cs
- TextRangeAdaptor.cs
- _HeaderInfoTable.cs
- DataGridViewCellPaintingEventArgs.cs
- AutomationInteropProvider.cs
- SubMenuStyleCollection.cs
- HttpContext.cs
- TypeUtils.cs
- LinkedList.cs
- QilInvokeEarlyBound.cs
- DataRow.cs
- BinaryReader.cs
- Image.cs
- InheritedPropertyDescriptor.cs
- HtmlControlDesigner.cs
- PropertyDescriptorGridEntry.cs
- MimeWriter.cs
- DetailsViewPageEventArgs.cs
- AdornerPresentationContext.cs
- Convert.cs
- ThaiBuddhistCalendar.cs
- BinHexDecoder.cs
- MemberCollection.cs
- AnnotationMap.cs
- ActivityXRefConverter.cs
- HttpModuleCollection.cs
- WindowClosedEventArgs.cs
- TextViewBase.cs
- PrivateUnsafeNativeCompoundFileMethods.cs
- HttpWebRequest.cs
- Exceptions.cs
- TreeNodeStyleCollection.cs
- DataGridViewSelectedRowCollection.cs
- RenderingEventArgs.cs
- TopClause.cs
- TypeSystem.cs
- TextContainer.cs
- TypefaceMetricsCache.cs
- TextBlock.cs
- PointAnimationBase.cs
- DrawingContext.cs
- QilFactory.cs
- StickyNoteContentControl.cs