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
- DateTime.cs
- DefaultProxySection.cs
- URIFormatException.cs
- EndpointAddressMessageFilterTable.cs
- EventPrivateKey.cs
- StandardTransformFactory.cs
- FrameworkElementFactoryMarkupObject.cs
- BinHexEncoding.cs
- DataServiceContext.cs
- ButtonField.cs
- SchemaHelper.cs
- DataListCommandEventArgs.cs
- InternalDuplexBindingElement.cs
- HtmlToClrEventProxy.cs
- Lookup.cs
- UpdatePanel.cs
- DependencyPropertyDescriptor.cs
- PrintControllerWithStatusDialog.cs
- ToolTipAutomationPeer.cs
- FrameworkRichTextComposition.cs
- VisualTreeHelper.cs
- ConvertEvent.cs
- ValueConversionAttribute.cs
- __Error.cs
- FacetDescriptionElement.cs
- TableHeaderCell.cs
- MouseDevice.cs
- CompilerScopeManager.cs
- XPathAncestorIterator.cs
- QuadraticBezierSegment.cs
- MessageSecurityOverTcpElement.cs
- FlowDocumentScrollViewerAutomationPeer.cs
- DataGridViewCellLinkedList.cs
- SourceLineInfo.cs
- ManipulationBoundaryFeedbackEventArgs.cs
- AsyncContentLoadedEventArgs.cs
- CustomAttributeBuilder.cs
- TransformConverter.cs
- SafeCryptoHandles.cs
- PrefixQName.cs
- SyntaxCheck.cs
- OleDbRowUpdatedEvent.cs
- TextServicesProperty.cs
- HtmlShim.cs
- QueryOutputWriter.cs
- ExpressionEvaluator.cs
- StylusPointPropertyInfoDefaults.cs
- WindowHideOrCloseTracker.cs
- ControlBuilder.cs
- HttpCacheVary.cs
- EqualityComparer.cs
- PageFunction.cs
- GeometryConverter.cs
- HtmlImage.cs
- PerformanceCounter.cs
- XPathExpr.cs
- ApplicationActivator.cs
- FixUp.cs
- ProxyGenerator.cs
- UseLicense.cs
- NumberSubstitution.cs
- DoubleCollectionConverter.cs
- PersistenceTypeAttribute.cs
- ContentFileHelper.cs
- ToolStripPanelCell.cs
- ScalarType.cs
- SynchronizedRandom.cs
- GAC.cs
- SoundPlayer.cs
- TrackBarRenderer.cs
- BookmarkScopeHandle.cs
- ColorKeyFrameCollection.cs
- LostFocusEventManager.cs
- NotSupportedException.cs
- ListBoxDesigner.cs
- CapabilitiesState.cs
- OletxVolatileEnlistment.cs
- ThreadInterruptedException.cs
- TextEffect.cs
- LoginUtil.cs
- InheritablePropertyChangeInfo.cs
- DataGridTable.cs
- LabelAutomationPeer.cs
- PropertyConverter.cs
- DocumentApplicationJournalEntry.cs
- EntityDataSourceMemberPath.cs
- Enum.cs
- DateTimePicker.cs
- PropertiesTab.cs
- ConfigurationProviderException.cs
- IndicCharClassifier.cs
- TCPListener.cs
- ColorContextHelper.cs
- Walker.cs
- OperationAbortedException.cs
- DoubleAverageAggregationOperator.cs
- SchemaLookupTable.cs
- AppDomainFactory.cs
- TableCell.cs
- RuleProcessor.cs