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
- VectorAnimation.cs
- DirectoryGroupQuery.cs
- ContentElementAutomationPeer.cs
- PageSetupDialog.cs
- XmlAggregates.cs
- ObjectFactoryCodeDomTreeGenerator.cs
- Math.cs
- OutputChannelBinder.cs
- MergeEnumerator.cs
- XmlAutoDetectWriter.cs
- ProcessingInstructionAction.cs
- RecipientInfo.cs
- CriticalHandle.cs
- ProcessModule.cs
- AuthenticationSection.cs
- Debugger.cs
- ScriptRegistrationManager.cs
- DbConnectionFactory.cs
- DataGridViewRowHeaderCell.cs
- AutomationProperty.cs
- TdsParameterSetter.cs
- XmlSchemaObjectTable.cs
- MonitoringDescriptionAttribute.cs
- PrimitiveCodeDomSerializer.cs
- DropDownButton.cs
- initElementDictionary.cs
- PagerSettings.cs
- SrgsDocument.cs
- MemoryRecordBuffer.cs
- TreeNodeStyleCollection.cs
- EventTrigger.cs
- BindValidationContext.cs
- ListItemCollection.cs
- SizeIndependentAnimationStorage.cs
- SqlSupersetValidator.cs
- EventMap.cs
- ViewgenGatekeeper.cs
- ObjectQueryExecutionPlan.cs
- ConstraintCollection.cs
- TargetConverter.cs
- ConfigXmlElement.cs
- ExtendedTransformFactory.cs
- FileDataSourceCache.cs
- RoutedEventValueSerializer.cs
- OleDbFactory.cs
- DataGridHelper.cs
- ToggleProviderWrapper.cs
- Debug.cs
- KeyedCollection.cs
- RegexCompilationInfo.cs
- BasicHttpMessageSecurity.cs
- HandlerBase.cs
- BamlLocalizationDictionary.cs
- FolderLevelBuildProviderCollection.cs
- SelectionProviderWrapper.cs
- StaticResourceExtension.cs
- CatalogPartCollection.cs
- Collection.cs
- AsymmetricSignatureDeformatter.cs
- Size.cs
- SimpleWorkerRequest.cs
- PeerCollaborationPermission.cs
- ExpressionEditorAttribute.cs
- Paragraph.cs
- KeyedCollection.cs
- AgileSafeNativeMemoryHandle.cs
- SemanticTag.cs
- TypeGeneratedEventArgs.cs
- TypeDependencyAttribute.cs
- OnOperation.cs
- ApplicationSettingsBase.cs
- JoinTreeNode.cs
- Sql8ExpressionRewriter.cs
- TimeoutTimer.cs
- EntitySqlQueryCacheKey.cs
- HttpModuleAction.cs
- HorizontalAlignConverter.cs
- ToolStripItemEventArgs.cs
- TripleDES.cs
- CategoryEditor.cs
- OracleColumn.cs
- ApplicationGesture.cs
- httpserverutility.cs
- TraceHandlerErrorFormatter.cs
- FormsAuthenticationUser.cs
- DataGridViewCheckBoxColumn.cs
- HashHelper.cs
- RectangleGeometry.cs
- TextTreeDeleteContentUndoUnit.cs
- Pen.cs
- MailWriter.cs
- SectionUpdates.cs
- ControlBuilder.cs
- RequestReplyCorrelator.cs
- MultiByteCodec.cs
- ConfigurationFileMap.cs
- DataGridViewRowsRemovedEventArgs.cs
- Parallel.cs
- HtmlTextViewAdapter.cs
- Graphics.cs