Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / WCF / IdentityModel / System / IdentityModel / Tokens / LocalIdKeyIdentifierClause.cs / 1305376 / 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. //----------------------------------------------------------- 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ThicknessAnimationBase.cs
- Identity.cs
- DbReferenceCollection.cs
- SetIterators.cs
- Transactions.cs
- PolyLineSegment.cs
- PointCollection.cs
- DefaultPrintController.cs
- StringToken.cs
- ContentType.cs
- SystemInformation.cs
- ElementHost.cs
- MediaContextNotificationWindow.cs
- MiniLockedBorderGlyph.cs
- PeerNameRecordCollection.cs
- LinqDataSourceView.cs
- SafeRightsManagementPubHandle.cs
- RequestQueue.cs
- CurrencyWrapper.cs
- MissingManifestResourceException.cs
- ConnectionOrientedTransportBindingElement.cs
- GroupLabel.cs
- BitHelper.cs
- EditableLabelControl.cs
- AnnotationComponentManager.cs
- InteropTrackingRecord.cs
- X509SecurityToken.cs
- PeerToPeerException.cs
- Array.cs
- ServiceHttpHandlerFactory.cs
- ReadOnlyObservableCollection.cs
- FontEditor.cs
- StandardOleMarshalObject.cs
- BaseResourcesBuildProvider.cs
- DocumentViewerHelper.cs
- HtmlTitle.cs
- SchemaContext.cs
- TreeView.cs
- CreateDataSourceDialog.cs
- NamespaceListProperty.cs
- MediaTimeline.cs
- ServiceDeploymentInfo.cs
- UnsafeNativeMethodsCLR.cs
- GeneralTransform3DGroup.cs
- ImageCodecInfoPrivate.cs
- BounceEase.cs
- Options.cs
- ExpressionBuilderContext.cs
- StyleBamlTreeBuilder.cs
- ActiveXSite.cs
- XmlBoundElement.cs
- InvalidPipelineStoreException.cs
- XmlEnumAttribute.cs
- HandleRef.cs
- ComponentEditorPage.cs
- TypedTableGenerator.cs
- XmlSchema.cs
- Visitors.cs
- ToolBar.cs
- DataContractAttribute.cs
- VectorCollectionValueSerializer.cs
- Suspend.cs
- SqlBulkCopy.cs
- TemplateKeyConverter.cs
- HttpProcessUtility.cs
- ImmutableDispatchRuntime.cs
- StringAnimationBase.cs
- TemplateBamlRecordReader.cs
- EntityContainer.cs
- ImageConverter.cs
- RegisteredHiddenField.cs
- CommandLibraryHelper.cs
- QilInvokeLateBound.cs
- MatchAllMessageFilter.cs
- LocationReferenceEnvironment.cs
- InvalidDataException.cs
- AttributeEmitter.cs
- IPHostEntry.cs
- XmlEntityReference.cs
- HostedHttpTransportManager.cs
- RsaKeyGen.cs
- Odbc32.cs
- SqlDataSourceStatusEventArgs.cs
- HostProtectionPermission.cs
- FixedFlowMap.cs
- InfoCardRSAPKCS1SignatureDeformatter.cs
- HtmlElementCollection.cs
- XmlSchemaValidationException.cs
- MsmqOutputMessage.cs
- ToolStripDropDown.cs
- TcpHostedTransportConfiguration.cs
- TransformerTypeCollection.cs
- ConfigurationManagerHelper.cs
- AdornerDecorator.cs
- HtmlInputControl.cs
- DataGridViewRowDividerDoubleClickEventArgs.cs
- PropertyEntry.cs
- RsaSecurityKey.cs
- HttpTransportSecurity.cs
- TextRangeSerialization.cs