Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / IdentityModel / System / IdentityModel / Tokens / LocalIdKeyIdentifierClause.cs / 1 / LocalIdKeyIdentifierClause.cs
//------------------------------------------------------------
// Copyright (c) Microsoft Corporation. All rights reserved.
//-----------------------------------------------------------
namespace System.IdentityModel.Tokens
{
using System.Globalization;
public class LocalIdKeyIdentifierClause : SecurityKeyIdentifierClause
{
readonly string localId;
readonly Type[] ownerTypes;
public LocalIdKeyIdentifierClause(string localId)
: this(localId, (Type[])null)
{
}
public LocalIdKeyIdentifierClause(string localId, Type ownerType)
: this(localId, ownerType == null ? (Type[])null : new Type[] { ownerType })
{
}
public LocalIdKeyIdentifierClause(string localId, byte[] derivationNonce, int derivationLength, Type ownerType)
: this(null, derivationNonce, derivationLength, ownerType == null ? (Type[])null : new Type[] { ownerType })
{
}
internal LocalIdKeyIdentifierClause(string localId, Type[] ownerTypes)
: this(localId, null, 0, ownerTypes)
{
}
internal LocalIdKeyIdentifierClause(string localId, byte[] derivationNonce, int derivationLength, Type[] ownerTypes)
: base(null, derivationNonce, derivationLength)
{
if (localId == null)
{
throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("localId");
}
if (localId == string.Empty)
{
throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgument(SR.GetString(SR.LocalIdCannotBeEmpty));
}
this.localId = localId;
this.ownerTypes = ownerTypes;
}
public string LocalId
{
get { return this.localId; }
}
public Type OwnerType
{
get { return (this.ownerTypes == null || this.ownerTypes.Length == 0) ? null : this.ownerTypes[0]; }
}
public override bool Matches(SecurityKeyIdentifierClause keyIdentifierClause)
{
LocalIdKeyIdentifierClause that = keyIdentifierClause as LocalIdKeyIdentifierClause;
// PreSharp Bug: Parameter 'that' to this public method must be validated: A null-dereference can occur here.
#pragma warning suppress 56506
return ReferenceEquals(this, that) || (that != null && that.Matches(this.localId, this.OwnerType));
}
public bool Matches(string localId, Type ownerType)
{
if (string.IsNullOrEmpty(localId))
return false;
if (this.localId != localId)
return false;
if (this.ownerTypes == null || ownerType == null)
return true;
for (int i = 0; i < this.ownerTypes.Length; ++i)
{
if (this.ownerTypes[i] == null || this.ownerTypes[i] == ownerType)
return true;
}
return false;
}
public override string ToString()
{
return string.Format(CultureInfo.InvariantCulture, "LocalIdKeyIdentifierClause(LocalId = '{0}', Owner = '{1}')", this.LocalId, this.OwnerType);
}
}
}
// 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
- WebPartZoneCollection.cs
- XmlCDATASection.cs
- XmlILAnnotation.cs
- StreamResourceInfo.cs
- FlowNode.cs
- StringReader.cs
- ParameterModifier.cs
- EntityDataSourceDesigner.cs
- RegisteredExpandoAttribute.cs
- PlatformCulture.cs
- SharedDp.cs
- RegexStringValidatorAttribute.cs
- NullableBoolConverter.cs
- FilterException.cs
- XmlUtil.cs
- TextSelectionHighlightLayer.cs
- MatrixAnimationUsingKeyFrames.cs
- Location.cs
- LayoutEngine.cs
- SecureEnvironment.cs
- HealthMonitoringSection.cs
- ExtensibleClassFactory.cs
- HttpConfigurationSystem.cs
- XmlCompatibilityReader.cs
- ExpressionConverter.cs
- Base64Encoder.cs
- PrintPreviewGraphics.cs
- WsatServiceCertificate.cs
- X509Chain.cs
- securitycriticaldataClass.cs
- Html32TextWriter.cs
- basevalidator.cs
- BidPrivateBase.cs
- _NegoStream.cs
- DocumentAutomationPeer.cs
- HttpCookiesSection.cs
- EventLogConfiguration.cs
- OrderByExpression.cs
- CopyNamespacesAction.cs
- LifetimeServices.cs
- AstNode.cs
- LogReservationCollection.cs
- X509CertificateValidator.cs
- CodeParameterDeclarationExpressionCollection.cs
- EastAsianLunisolarCalendar.cs
- AlternateViewCollection.cs
- UIElement.cs
- SecurityManager.cs
- CodeTypeReference.cs
- XmlNamespaceMappingCollection.cs
- BamlLocalizationDictionary.cs
- AuthenticodeSignatureInformation.cs
- ResourceIDHelper.cs
- RenderOptions.cs
- HttpGetProtocolReflector.cs
- KerberosRequestorSecurityToken.cs
- BaseDataList.cs
- DeviceContext2.cs
- FontEmbeddingManager.cs
- Point4DValueSerializer.cs
- FormsAuthenticationCredentials.cs
- NameScope.cs
- FixedSOMPage.cs
- ButtonColumn.cs
- MetabaseServerConfig.cs
- TraceHandler.cs
- TypeElement.cs
- UserControlDesigner.cs
- UrlPath.cs
- SQLInt64.cs
- RegexCompiler.cs
- FileVersion.cs
- ContractCodeDomInfo.cs
- WebControlsSection.cs
- BamlLocalizerErrorNotifyEventArgs.cs
- XmlSchemaAny.cs
- StringInfo.cs
- PageTrueTypeFont.cs
- StateManagedCollection.cs
- DockingAttribute.cs
- UpdateManifestForBrowserApplication.cs
- MetaDataInfo.cs
- ReferentialConstraint.cs
- GridViewHeaderRowPresenterAutomationPeer.cs
- KerberosTicketHashIdentifierClause.cs
- XmlCollation.cs
- _WebProxyDataBuilder.cs
- RegionIterator.cs
- ResourceSet.cs
- GlobalizationSection.cs
- ButtonFieldBase.cs
- CatalogPartCollection.cs
- ScaleTransform3D.cs
- CatalogZoneBase.cs
- _NegoStream.cs
- OptimizedTemplateContent.cs
- oledbconnectionstring.cs
- ClipboardProcessor.cs
- Compensate.cs
- CodeParameterDeclarationExpressionCollection.cs