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
- XpsS0ValidatingLoader.cs
- DoubleCollection.cs
- BamlRecordWriter.cs
- OdbcStatementHandle.cs
- MsmqDecodeHelper.cs
- SqlDataAdapter.cs
- EventProviderWriter.cs
- ListSourceHelper.cs
- SourceChangedEventArgs.cs
- SafePEFileHandle.cs
- XamlToRtfParser.cs
- PathGeometry.cs
- JoinSymbol.cs
- CriticalFinalizerObject.cs
- SpanIndex.cs
- DateTimePicker.cs
- CompositionCommandSet.cs
- ErrorItem.cs
- _SslSessionsCache.cs
- XmlLinkedNode.cs
- DelegateOutArgument.cs
- ColumnWidthChangingEvent.cs
- ExtensionSimplifierMarkupObject.cs
- _Connection.cs
- CollectionContainer.cs
- MemberListBinding.cs
- NamespaceCollection.cs
- LogAppendAsyncResult.cs
- TemplateColumn.cs
- DbException.cs
- LocalizeDesigner.cs
- InvalidPipelineStoreException.cs
- Choices.cs
- ConfigurationElementProperty.cs
- ReadOnlyTernaryTree.cs
- TemplatePagerField.cs
- BrushValueSerializer.cs
- User.cs
- KeyedByTypeCollection.cs
- ConfigurationSection.cs
- StaticFileHandler.cs
- EventSinkHelperWriter.cs
- XmlMapping.cs
- RedistVersionInfo.cs
- VectorAnimationBase.cs
- GeometryModel3D.cs
- ObjectDataSource.cs
- StorageModelBuildProvider.cs
- Globals.cs
- SpecialFolderEnumConverter.cs
- SignerInfo.cs
- ClassGenerator.cs
- SortedDictionary.cs
- JoinQueryOperator.cs
- StringUtil.cs
- MsmqHostedTransportConfiguration.cs
- CompositionAdorner.cs
- CodeCompileUnit.cs
- InterleavedZipPartStream.cs
- DriveInfo.cs
- HostSecurityManager.cs
- XmlWrappingWriter.cs
- DetailsViewInsertEventArgs.cs
- ProcessModelSection.cs
- DataRelationCollection.cs
- ButtonBase.cs
- TextBox.cs
- GeometryCombineModeValidation.cs
- ParenthesizePropertyNameAttribute.cs
- WMICapabilities.cs
- StrokeFIndices.cs
- DataTableClearEvent.cs
- Figure.cs
- ObjectStorage.cs
- WorkflowTraceTransfer.cs
- MembershipSection.cs
- LogSwitch.cs
- MenuItemBinding.cs
- MergeExecutor.cs
- PointF.cs
- ECDsaCng.cs
- NamespaceCollection.cs
- WebPartZone.cs
- GPPOINT.cs
- EntityDescriptor.cs
- MessageSmuggler.cs
- ObjectDataSourceMethodEventArgs.cs
- MethodBuilderInstantiation.cs
- BrowserCapabilitiesCompiler.cs
- ConfigXmlSignificantWhitespace.cs
- ExpressionParser.cs
- SqlClientMetaDataCollectionNames.cs
- PnrpPermission.cs
- GroupAggregateExpr.cs
- BooleanFunctions.cs
- StrongNameKeyPair.cs
- XmlNodeList.cs
- DoubleAnimation.cs
- FormViewDeletedEventArgs.cs
- RuleConditionDialog.Designer.cs