Code:
/ 4.0 / 4.0 / untmp / 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- DataReceivedEventArgs.cs
- TransactionManagerProxy.cs
- TokenFactoryBase.cs
- DataContractAttribute.cs
- PtsContext.cs
- SiteIdentityPermission.cs
- ContentElement.cs
- ProviderMetadata.cs
- ExpandedWrapper.cs
- BindingContext.cs
- MetadataArtifactLoaderCompositeResource.cs
- UrlAuthorizationModule.cs
- SerialPort.cs
- APCustomTypeDescriptor.cs
- ClientSettingsStore.cs
- DisableDpiAwarenessAttribute.cs
- safemediahandle.cs
- ServiceHttpModule.cs
- SqlDependencyUtils.cs
- TdsParameterSetter.cs
- CapabilitiesRule.cs
- NamedPipeAppDomainProtocolHandler.cs
- followingquery.cs
- SafeFileMapViewHandle.cs
- SiteMapHierarchicalDataSourceView.cs
- HtmlElement.cs
- HtmlElementErrorEventArgs.cs
- SapiRecoInterop.cs
- NeedSkipTokenVisitor.cs
- ConnectionStringsExpressionBuilder.cs
- SqlCachedBuffer.cs
- SelectionHighlightInfo.cs
- DataGridCellsPanel.cs
- SqlDataSourceSelectingEventArgs.cs
- DesignerCatalogPartChrome.cs
- SchemaImporterExtensionElementCollection.cs
- InkSerializer.cs
- ComponentEditorForm.cs
- TextElementCollection.cs
- ProxyManager.cs
- SplayTreeNode.cs
- OrderedHashRepartitionStream.cs
- SamlSecurityTokenAuthenticator.cs
- Version.cs
- FragmentQueryProcessor.cs
- TableCell.cs
- ContainerFilterService.cs
- SmiEventSink.cs
- OleDragDropHandler.cs
- IEnumerable.cs
- PatternMatchRules.cs
- ICspAsymmetricAlgorithm.cs
- EntityContainerEntitySet.cs
- ClientType.cs
- NativeMethods.cs
- WindowsGrip.cs
- _UncName.cs
- DirectoryObjectSecurity.cs
- BinarySerializer.cs
- XPathPatternParser.cs
- DataGridViewRow.cs
- SafeBitVector32.cs
- SchemaEntity.cs
- RecipientServiceModelSecurityTokenRequirement.cs
- DependencyObject.cs
- assemblycache.cs
- SettingsPropertyNotFoundException.cs
- LinearKeyFrames.cs
- Brush.cs
- ControlBuilderAttribute.cs
- TransformerTypeCollection.cs
- CodeDirectoryCompiler.cs
- XamlFigureLengthSerializer.cs
- URLString.cs
- listviewsubitemcollectioneditor.cs
- SpinLock.cs
- ProfileSettings.cs
- ParseChildrenAsPropertiesAttribute.cs
- SchemaImporterExtensionElementCollection.cs
- Transactions.cs
- WpfKnownMemberInvoker.cs
- DBAsyncResult.cs
- RadioButtonList.cs
- Symbol.cs
- NotifyCollectionChangedEventArgs.cs
- ValidationSummaryDesigner.cs
- BaseAppDomainProtocolHandler.cs
- Italic.cs
- DebugView.cs
- ItemAutomationPeer.cs
- ArrayList.cs
- SmiEventStream.cs
- ModelTreeEnumerator.cs
- LinearQuaternionKeyFrame.cs
- embossbitmapeffect.cs
- PairComparer.cs
- AtomServiceDocumentSerializer.cs
- Highlights.cs
- PixelShader.cs
- TabItem.cs