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
- GregorianCalendarHelper.cs
- PolicyStatement.cs
- XmlSecureResolver.cs
- DbMetaDataFactory.cs
- PersonalizableTypeEntry.cs
- CalendarButtonAutomationPeer.cs
- JpegBitmapEncoder.cs
- XmlTextReaderImplHelpers.cs
- ExeContext.cs
- PerspectiveCamera.cs
- Size3D.cs
- ExpressionConverter.cs
- OneToOneMappingSerializer.cs
- CompositionTarget.cs
- WebCategoryAttribute.cs
- DataColumnMapping.cs
- OpenFileDialog.cs
- DataContractSerializerOperationGenerator.cs
- QuaternionAnimation.cs
- FixedDocument.cs
- CultureNotFoundException.cs
- NullReferenceException.cs
- Error.cs
- HuffmanTree.cs
- CAGDesigner.cs
- DataColumn.cs
- UriSectionData.cs
- SubpageParagraph.cs
- AsymmetricAlgorithm.cs
- RuleSettings.cs
- ExpandButtonVisibilityConverter.cs
- WorkflowViewManager.cs
- BinaryCommonClasses.cs
- Dispatcher.cs
- DirectionalLight.cs
- TlsnegoTokenAuthenticator.cs
- COM2IDispatchConverter.cs
- ToolStripSeparatorRenderEventArgs.cs
- DataTablePropertyDescriptor.cs
- ToolStripContainer.cs
- Section.cs
- ProviderMetadata.cs
- DataGridViewTopLeftHeaderCell.cs
- TransformCryptoHandle.cs
- ApplicationException.cs
- PageBuildProvider.cs
- NetworkAddressChange.cs
- MsdtcWrapper.cs
- ResourceExpressionEditor.cs
- SoapIgnoreAttribute.cs
- PeerTransportSecurityElement.cs
- DocumentOrderComparer.cs
- Identity.cs
- Visual3D.cs
- ProxyGenerator.cs
- RepeatInfo.cs
- _RequestLifetimeSetter.cs
- DrawingVisualDrawingContext.cs
- SchemaNames.cs
- AppDomainAttributes.cs
- PackagePart.cs
- FormatConvertedBitmap.cs
- DocumentGridContextMenu.cs
- Set.cs
- WsdlBuildProvider.cs
- UnescapedXmlDiagnosticData.cs
- DataServiceRequest.cs
- DivideByZeroException.cs
- PolygonHotSpot.cs
- COM2FontConverter.cs
- Error.cs
- ArrayWithOffset.cs
- LineInfo.cs
- HashCryptoHandle.cs
- DependencyPropertyValueSerializer.cs
- RegexCharClass.cs
- SQLInt32Storage.cs
- CorruptingExceptionCommon.cs
- TcpProcessProtocolHandler.cs
- CodeMemberMethod.cs
- WebRequest.cs
- Overlapped.cs
- CodeAttributeArgumentCollection.cs
- ThicknessConverter.cs
- ArraySortHelper.cs
- OpenTypeLayout.cs
- ListBox.cs
- UIElement3D.cs
- EmptyElement.cs
- WebPartEventArgs.cs
- NumericExpr.cs
- WebPartsPersonalization.cs
- WindowsPrincipal.cs
- InteropAutomationProvider.cs
- CalendarDataBindingHandler.cs
- AnnotationComponentChooser.cs
- ReadOnlyNameValueCollection.cs
- HostingEnvironmentWrapper.cs
- HeaderCollection.cs
- Viewport3DAutomationPeer.cs