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
- SmiEventSink.cs
- regiisutil.cs
- DataControlFieldHeaderCell.cs
- StringBlob.cs
- MembershipAdapter.cs
- UrlMappingsSection.cs
- SelectionListDesigner.cs
- ProcessInputEventArgs.cs
- QilDataSource.cs
- InstanceHandleConflictException.cs
- HttpConfigurationContext.cs
- WebServiceErrorEvent.cs
- WaitHandle.cs
- OleDbFactory.cs
- PrintPreviewDialog.cs
- CustomMenuItemCollection.cs
- NumberAction.cs
- IntegerCollectionEditor.cs
- AnnotationObservableCollection.cs
- TTSEvent.cs
- TaskFileService.cs
- StyleTypedPropertyAttribute.cs
- DnsPermission.cs
- BehaviorDragDropEventArgs.cs
- BaseTreeIterator.cs
- SafeFindHandle.cs
- CryptoHelper.cs
- TableParagraph.cs
- BigIntegerStorage.cs
- ClientApiGenerator.cs
- RelationshipNavigation.cs
- RemoteWebConfigurationHost.cs
- ZipIOEndOfCentralDirectoryBlock.cs
- BinaryVersion.cs
- invalidudtexception.cs
- TextPointer.cs
- ConstraintConverter.cs
- SplayTreeNode.cs
- InsufficientMemoryException.cs
- ParserOptions.cs
- OperationExecutionFault.cs
- EventPropertyMap.cs
- FontStyleConverter.cs
- DesignerHierarchicalDataSourceView.cs
- PowerStatus.cs
- TemplateBindingExpressionConverter.cs
- StorageBasedPackageProperties.cs
- MsmqIntegrationBindingElement.cs
- CryptographicAttribute.cs
- WorkflowEnvironment.cs
- hresults.cs
- DiscoveryDocumentSearchPattern.cs
- SystemFonts.cs
- TransformCryptoHandle.cs
- PropertyIDSet.cs
- DesignerActionItem.cs
- StatusBar.cs
- ExceptionAggregator.cs
- UnsafeNativeMethods.cs
- BackgroundFormatInfo.cs
- XsltInput.cs
- RtType.cs
- ObjectStateFormatter.cs
- EdmRelationshipRoleAttribute.cs
- OleDbSchemaGuid.cs
- ConfigurationPropertyAttribute.cs
- ContentControl.cs
- LinqDataSourceDisposeEventArgs.cs
- UrlMappingsModule.cs
- HebrewCalendar.cs
- WrappedIUnknown.cs
- HttpModulesSection.cs
- DataServiceQueryContinuation.cs
- XPathDocument.cs
- ListControlActionList.cs
- PropertyConverter.cs
- DiscriminatorMap.cs
- UnsafeNativeMethods.cs
- RuntimeConfig.cs
- RightsManagementEncryptedStream.cs
- versioninfo.cs
- WindowsStatic.cs
- PathStreamGeometryContext.cs
- PrivilegeNotHeldException.cs
- Char.cs
- LoadWorkflowAsyncResult.cs
- ItemCheckEvent.cs
- PointLight.cs
- XmlNodeChangedEventArgs.cs
- MenuStrip.cs
- ReadOnlyAttribute.cs
- backend.cs
- RelationshipDetailsRow.cs
- ProvidePropertyAttribute.cs
- WindowsServiceElement.cs
- PriorityQueue.cs
- GestureRecognizer.cs
- GridItemPattern.cs
- SeverityFilter.cs
- SchemaMapping.cs