Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / ServiceModel / System / ServiceModel / Security / UserNamePasswordServiceCredential.cs / 2 / UserNamePasswordServiceCredential.cs
//------------------------------------------------------------------------------
// Copyright (c) Microsoft Corporation. All rights reserved.
//-----------------------------------------------------------------------------
namespace System.ServiceModel.Security
{
using System.Collections.Generic;
using System.ServiceModel;
using System.Runtime.Serialization;
using System.IdentityModel.Selectors;
using System.Net;
using System.Security.Principal;
using System.ServiceModel.Security.Tokens;
using System.Security.Cryptography.X509Certificates;
using System.Web.Security;
using System.Runtime.CompilerServices;
public sealed class UserNamePasswordServiceCredential
{
internal const UserNamePasswordValidationMode DefaultUserNamePasswordValidationMode = UserNamePasswordValidationMode.Windows;
internal const bool DefaultCacheLogonTokens = false;
internal const int DefaultMaxCachedLogonTokens = 128;
internal const string DefaultCachedLogonTokenLifetimeString = "00:15:00";
internal static readonly TimeSpan DefaultCachedLogonTokenLifetime = TimeSpan.Parse(DefaultCachedLogonTokenLifetimeString);
UserNamePasswordValidationMode validationMode = DefaultUserNamePasswordValidationMode;
UserNamePasswordValidator validator;
object membershipProvider;
bool includeWindowsGroups = SspiSecurityTokenProvider.DefaultExtractWindowsGroupClaims;
bool cacheLogonTokens = DefaultCacheLogonTokens;
int maxCachedLogonTokens = DefaultMaxCachedLogonTokens;
TimeSpan cachedLogonTokenLifetime = DefaultCachedLogonTokenLifetime;
bool isReadOnly;
internal UserNamePasswordServiceCredential()
{
// empty
}
internal UserNamePasswordServiceCredential(UserNamePasswordServiceCredential other)
{
this.includeWindowsGroups = other.includeWindowsGroups;
this.membershipProvider = other.membershipProvider;
this.validationMode = other.validationMode;
this.validator = other.validator;
this.cacheLogonTokens = other.cacheLogonTokens;
this.maxCachedLogonTokens = other.maxCachedLogonTokens;
this.cachedLogonTokenLifetime = other.cachedLogonTokenLifetime;
this.isReadOnly = other.isReadOnly;
}
public UserNamePasswordValidationMode UserNamePasswordValidationMode
{
get
{
return this.validationMode;
}
set
{
UserNamePasswordValidationModeHelper.Validate(value);
ThrowIfImmutable();
this.validationMode = value;
}
}
public UserNamePasswordValidator CustomUserNamePasswordValidator
{
get
{
return this.validator;
}
set
{
ThrowIfImmutable();
this.validator = value;
}
}
public MembershipProvider MembershipProvider
{
get
{
return (MembershipProvider)this.membershipProvider;
}
set
{
ThrowIfImmutable();
this.membershipProvider = value;
}
}
public bool IncludeWindowsGroups
{
get
{
return this.includeWindowsGroups;
}
set
{
ThrowIfImmutable();
this.includeWindowsGroups = value;
}
}
public bool CacheLogonTokens
{
get
{
return this.cacheLogonTokens;
}
set
{
ThrowIfImmutable();
this.cacheLogonTokens = value;
}
}
public int MaxCachedLogonTokens
{
get
{
return this.maxCachedLogonTokens;
}
set
{
if (value <= 0)
{
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentOutOfRangeException("value", SR.GetString(SR.ValueMustBeGreaterThanZero)));
}
ThrowIfImmutable();
this.maxCachedLogonTokens = value;
}
}
public TimeSpan CachedLogonTokenLifetime
{
get
{
return this.cachedLogonTokenLifetime;
}
set
{
if (value <= TimeSpan.Zero)
{
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentOutOfRangeException("value", SR.GetString(SR.TimeSpanMustbeGreaterThanTimeSpanZero)));
}
if (TimeoutHelper.IsTooLarge(value))
{
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentOutOfRangeException("value", value,
SR.GetString(SR.SFxTimeoutOutOfRangeTooBig)));
}
ThrowIfImmutable();
this.cachedLogonTokenLifetime = value;
}
}
internal UserNamePasswordValidator GetUserNamePasswordValidator()
{
if (this.validationMode == UserNamePasswordValidationMode.MembershipProvider)
{
return this.GetMembershipProviderValidator();
}
else if (this.validationMode == UserNamePasswordValidationMode.Custom)
{
if (this.validator == null)
{
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidOperationException(SR.GetString(SR.MissingCustomUserNamePasswordValidator)));
}
return this.validator;
}
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new NotSupportedException());
}
[MethodImpl(MethodImplOptions.NoInlining)]
UserNamePasswordValidator GetMembershipProviderValidator()
{
MembershipProvider provider;
if (this.membershipProvider != null)
{
provider = (MembershipProvider)this.membershipProvider;
}
else
{
provider = Membership.Provider;
}
if (provider == null)
{
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidOperationException(SR.GetString(SR.MissingMembershipProvider)));
}
return UserNamePasswordValidator.CreateMembershipProviderValidator(provider);
}
internal void MakeReadOnly()
{
this.isReadOnly = true;
}
void ThrowIfImmutable()
{
if (this.isReadOnly)
{
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidOperationException(SR.GetString(SR.ObjectIsReadOnly)));
}
}
}
}
// 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
- __TransparentProxy.cs
- DbConnectionPoolOptions.cs
- CellPartitioner.cs
- LoginView.cs
- ListenerSessionConnection.cs
- LabelEditEvent.cs
- HttpListenerRequest.cs
- ExpressionDumper.cs
- MD5.cs
- wgx_render.cs
- AstTree.cs
- SamlNameIdentifierClaimResource.cs
- Table.cs
- EntityDataSourceWrapperPropertyDescriptor.cs
- Delegate.cs
- ApplicationInterop.cs
- __Error.cs
- _HTTPDateParse.cs
- NameObjectCollectionBase.cs
- XmlQueryStaticData.cs
- FlowNode.cs
- BindingListCollectionView.cs
- SimpleTypeResolver.cs
- SectionInformation.cs
- Collection.cs
- FrameworkObject.cs
- Keyboard.cs
- Parameter.cs
- TransformConverter.cs
- CompilerLocalReference.cs
- VirtualizedItemPattern.cs
- SplayTreeNode.cs
- ListBindableAttribute.cs
- ProxySimple.cs
- UserUseLicenseDictionaryLoader.cs
- Blend.cs
- DelegatingConfigHost.cs
- EventLogPermission.cs
- PrimitiveXmlSerializers.cs
- RefreshInfo.cs
- TcpConnectionPoolSettings.cs
- ElementAtQueryOperator.cs
- TreeNodeStyle.cs
- SqlCharStream.cs
- RemoteWebConfigurationHostStream.cs
- DynamicObject.cs
- FastEncoderWindow.cs
- KnownAssemblyEntry.cs
- DataTableTypeConverter.cs
- ToolBarButton.cs
- EdgeProfileValidation.cs
- SqlRowUpdatedEvent.cs
- FrameworkReadOnlyPropertyMetadata.cs
- BinaryMessageEncodingBindingElement.cs
- EntityTypeBase.cs
- ListViewUpdatedEventArgs.cs
- AbandonedMutexException.cs
- FilterRepeater.cs
- XmlNodeList.cs
- InstanceData.cs
- dbenumerator.cs
- MaskPropertyEditor.cs
- SerialErrors.cs
- Label.cs
- ToolBarButtonClickEvent.cs
- Lease.cs
- LocalFileSettingsProvider.cs
- RuntimeIdentifierPropertyAttribute.cs
- UnlockInstanceCommand.cs
- SiteMapSection.cs
- XPathConvert.cs
- SmtpNegotiateAuthenticationModule.cs
- TableItemPattern.cs
- FixedSchema.cs
- Binding.cs
- SafeHandles.cs
- TextTreeRootTextBlock.cs
- QueueProcessor.cs
- FilteredReadOnlyMetadataCollection.cs
- OleDbException.cs
- CodeTypeParameter.cs
- XmlTextWriter.cs
- ValidationError.cs
- Buffer.cs
- TextAnchor.cs
- Attributes.cs
- DesignTimeParseData.cs
- Lease.cs
- ClosableStream.cs
- WebScriptEnablingElement.cs
- WithStatement.cs
- Console.cs
- GetPageCompletedEventArgs.cs
- WebEventTraceProvider.cs
- DetailsViewInsertEventArgs.cs
- WsatServiceAddress.cs
- URI.cs
- IconConverter.cs
- ListSurrogate.cs
- CellIdBoolean.cs