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
- CultureTable.cs
- PieceDirectory.cs
- SystemMulticastIPAddressInformation.cs
- APCustomTypeDescriptor.cs
- CapabilitiesAssignment.cs
- RelOps.cs
- activationcontext.cs
- ReferenceSchema.cs
- MultiBindingExpression.cs
- PropertyKey.cs
- iisPickupDirectory.cs
- ContextQuery.cs
- MultiSelector.cs
- PackWebRequestFactory.cs
- PageHandlerFactory.cs
- InvalidOperationException.cs
- EventData.cs
- _emptywebproxy.cs
- DictionaryEntry.cs
- Model3D.cs
- ByteFacetDescriptionElement.cs
- ContainerParaClient.cs
- DataErrorValidationRule.cs
- PreservationFileWriter.cs
- SymmetricKeyWrap.cs
- SpecialFolderEnumConverter.cs
- DoubleCollectionConverter.cs
- EditorBrowsableAttribute.cs
- EntityContainerRelationshipSetEnd.cs
- TypeExtensions.cs
- WinInetCache.cs
- ProfileManager.cs
- DataList.cs
- ResourceCategoryAttribute.cs
- PathSegmentCollection.cs
- TiffBitmapEncoder.cs
- MDIWindowDialog.cs
- MetaColumn.cs
- AutoSizeComboBox.cs
- PolicyStatement.cs
- ClosableStream.cs
- ProxyWebPartConnectionCollection.cs
- EditorZoneBase.cs
- Attributes.cs
- ConnectionPointCookie.cs
- AttributeCollection.cs
- Int64Animation.cs
- ZipIOFileItemStream.cs
- CompoundFileStreamReference.cs
- SerializationTrace.cs
- Rotation3DKeyFrameCollection.cs
- WebRequest.cs
- EditorAttribute.cs
- UnicastIPAddressInformationCollection.cs
- DataError.cs
- WebPartUtil.cs
- BinaryMethodMessage.cs
- HtmlTableRow.cs
- PropertyValue.cs
- MSAAWinEventWrap.cs
- DataQuery.cs
- BitStack.cs
- JsonReaderWriterFactory.cs
- DataSetViewSchema.cs
- TailPinnedEventArgs.cs
- RegexCaptureCollection.cs
- CollectionConverter.cs
- WmlPhoneCallAdapter.cs
- StringResourceManager.cs
- ListViewItemEventArgs.cs
- Point3DCollectionConverter.cs
- PersonalizableAttribute.cs
- FixUpCollection.cs
- ScriptingRoleServiceSection.cs
- ClientRolePrincipal.cs
- DeferredElementTreeState.cs
- Lasso.cs
- SubMenuStyleCollection.cs
- RefExpr.cs
- AlternationConverter.cs
- JsonEncodingStreamWrapper.cs
- MouseGesture.cs
- TextRangeAdaptor.cs
- RuleAttributes.cs
- XmlUtf8RawTextWriter.cs
- DATA_BLOB.cs
- DoWorkEventArgs.cs
- ObjectToIdCache.cs
- COM2TypeInfoProcessor.cs
- VarInfo.cs
- objectquery_tresulttype.cs
- PaperSource.cs
- PageContent.cs
- EdmToObjectNamespaceMap.cs
- FormViewRow.cs
- TreeNodeCollection.cs
- PageCatalogPart.cs
- DetailsViewRowCollection.cs
- IriParsingElement.cs
- AuthenticationException.cs