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
- SymLanguageType.cs
- TextDocumentView.cs
- WebConfigurationHost.cs
- PropertyInformationCollection.cs
- RegularExpressionValidator.cs
- ReflectionHelper.cs
- InvalidCommandTreeException.cs
- EditingMode.cs
- RelationshipDetailsRow.cs
- MouseBinding.cs
- CurrentChangingEventManager.cs
- LinkedList.cs
- WebUtility.cs
- FormViewDeletedEventArgs.cs
- CustomCategoryAttribute.cs
- GeometryConverter.cs
- DeclarativeCatalogPart.cs
- HelpProvider.cs
- SymbolPair.cs
- SoapSchemaMember.cs
- ApplicationHost.cs
- DataGridTableCollection.cs
- HwndHost.cs
- XmlAnyElementAttribute.cs
- DummyDataSource.cs
- TripleDESCryptoServiceProvider.cs
- InkSerializer.cs
- regiisutil.cs
- MULTI_QI.cs
- DataSysAttribute.cs
- HwndKeyboardInputProvider.cs
- HttpListenerResponse.cs
- DatePickerDateValidationErrorEventArgs.cs
- CommandID.cs
- Page.cs
- Walker.cs
- StandardBindingImporter.cs
- _LoggingObject.cs
- Screen.cs
- ToolStripTextBox.cs
- CompilationUtil.cs
- URLString.cs
- StyleHelper.cs
- ExpressionBindings.cs
- DataGridViewBand.cs
- Overlapped.cs
- RelOps.cs
- SqlComparer.cs
- ObjectDisposedException.cs
- IsolatedStorage.cs
- AnnouncementEventArgs.cs
- Globals.cs
- Track.cs
- RemotingAttributes.cs
- ScriptControlDescriptor.cs
- ContextMenuStripGroupCollection.cs
- AuthStoreRoleProvider.cs
- CommandBindingCollection.cs
- SqlClientMetaDataCollectionNames.cs
- XmlSerializationGeneratedCode.cs
- ProxyWebPartManager.cs
- SettingsProperty.cs
- Point4D.cs
- WpfMemberInvoker.cs
- EditingCoordinator.cs
- VectorCollectionValueSerializer.cs
- EntityModelBuildProvider.cs
- Dispatcher.cs
- NegatedCellConstant.cs
- _ListenerResponseStream.cs
- ScriptRegistrationManager.cs
- DataMemberConverter.cs
- X509ChainPolicy.cs
- PTProvider.cs
- NotificationContext.cs
- CalendarDateRange.cs
- AuthenticationException.cs
- IPEndPoint.cs
- DocumentReferenceCollection.cs
- Resources.Designer.cs
- CheckBoxFlatAdapter.cs
- DeferredElementTreeState.cs
- EntitySqlException.cs
- _ChunkParse.cs
- PersonalizationStateQuery.cs
- SafeLibraryHandle.cs
- PersistChildrenAttribute.cs
- CodeDefaultValueExpression.cs
- DataGridViewColumnDividerDoubleClickEventArgs.cs
- CodeTypeMember.cs
- AccessText.cs
- DiscardableAttribute.cs
- IriParsingElement.cs
- RouteItem.cs
- XmlWhitespace.cs
- MessagePropertyAttribute.cs
- SqlTriggerContext.cs
- BamlTreeNode.cs
- XmlSerializationGeneratedCode.cs
- DocumentCollection.cs