Code:
/ 4.0 / 4.0 / untmp / 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.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- KnownBoxes.cs
- ReadOnlyMetadataCollection.cs
- PopupRootAutomationPeer.cs
- XamlStackWriter.cs
- SHA512Cng.cs
- XmlSchemaProviderAttribute.cs
- UndoEngine.cs
- columnmapkeybuilder.cs
- ZipPackagePart.cs
- CutCopyPasteHelper.cs
- PasswordPropertyTextAttribute.cs
- RightsManagementInformation.cs
- MultilineStringEditor.cs
- DataListItemCollection.cs
- AssemblyEvidenceFactory.cs
- TextMarkerSource.cs
- Keyboard.cs
- ZipIORawDataFileBlock.cs
- DtdParser.cs
- IdentityHolder.cs
- HwndHostAutomationPeer.cs
- LongTypeConverter.cs
- VisualStyleElement.cs
- TextTreeRootTextBlock.cs
- XsltCompileContext.cs
- SingleConverter.cs
- TracedNativeMethods.cs
- CompositeScriptReference.cs
- DataContractSerializerOperationGenerator.cs
- MasterPageParser.cs
- QuotedStringWriteStateInfo.cs
- InvalidOperationException.cs
- ChannelCredentials.cs
- QueryTaskGroupState.cs
- MetabaseServerConfig.cs
- NativeRightsManagementAPIsStructures.cs
- XPathNodeIterator.cs
- WebPartConnectionsConfigureVerb.cs
- ConnectionManagementSection.cs
- WindowsProgressbar.cs
- SchemaObjectWriter.cs
- PaintEvent.cs
- DispatchOperationRuntime.cs
- FacetEnabledSchemaElement.cs
- StringOutput.cs
- HtmlControl.cs
- EntityKeyElement.cs
- DotExpr.cs
- PropertyIDSet.cs
- DiscoveryEndpointElement.cs
- SchemaAttDef.cs
- iisPickupDirectory.cs
- Debug.cs
- DataServiceRequestOfT.cs
- GridViewEditEventArgs.cs
- FileCodeGroup.cs
- SettingsPropertyNotFoundException.cs
- ErrorWrapper.cs
- ArgumentNullException.cs
- TemplateBindingExpressionConverter.cs
- SqlXml.cs
- VariantWrapper.cs
- ImageConverter.cs
- DefaultShape.cs
- AnonymousIdentificationModule.cs
- OracleFactory.cs
- MachineKeySection.cs
- PeerToPeerException.cs
- DataStreams.cs
- ListControlActionList.cs
- _SslStream.cs
- NoResizeHandleGlyph.cs
- JsonSerializer.cs
- CommandSet.cs
- LayoutEngine.cs
- Configuration.cs
- BaseParser.cs
- FunctionDetailsReader.cs
- x509utils.cs
- VerificationAttribute.cs
- ObjectFactoryCodeDomTreeGenerator.cs
- SQLSingle.cs
- NgenServicingAttributes.cs
- SchemaObjectWriter.cs
- WebPartDisplayModeCollection.cs
- UpdateEventArgs.cs
- SqlMethods.cs
- MessageBox.cs
- SetStoryboardSpeedRatio.cs
- ACE.cs
- InvokeProviderWrapper.cs
- ExcludeFromCodeCoverageAttribute.cs
- SoapObjectReader.cs
- CodeDomSerializerException.cs
- DeviceSpecificDesigner.cs
- RuleSetDialog.Designer.cs
- EventToken.cs
- JobCollate.cs
- AbsoluteQuery.cs
- OperationInvokerBehavior.cs