Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / IdentityModel / System / IdentityModel / Tokens / LocalIdKeyIdentifierClause.cs / 1 / 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ApplicationSecurityManager.cs
- EntityDataSourceReferenceGroup.cs
- CodeArrayIndexerExpression.cs
- DrawingAttributesDefaultValueFactory.cs
- Int64KeyFrameCollection.cs
- ErrorFormatterPage.cs
- WebConfigurationHost.cs
- GlobalizationSection.cs
- SoapHeaders.cs
- AbandonedMutexException.cs
- XmlBaseWriter.cs
- MessageDirection.cs
- DataGridViewCellToolTipTextNeededEventArgs.cs
- CallTemplateAction.cs
- CultureData.cs
- Label.cs
- InvalidOperationException.cs
- ServiceDebugElement.cs
- RepeaterItemCollection.cs
- WindowsEditBox.cs
- SynchronizingStream.cs
- Divide.cs
- Label.cs
- TargetParameterCountException.cs
- AutomationIdentifierGuids.cs
- ToolStripContentPanel.cs
- SafeNativeMethodsOther.cs
- PathTooLongException.cs
- PathGradientBrush.cs
- StringCollectionEditor.cs
- AsyncOperationManager.cs
- ActivationServices.cs
- StatusBarPanelClickEvent.cs
- FixedFlowMap.cs
- EqualityArray.cs
- Vector3DConverter.cs
- ExpressionTable.cs
- ServiceMetadataExtension.cs
- CacheDependency.cs
- OleDbParameterCollection.cs
- FragmentQuery.cs
- SignedXmlDebugLog.cs
- CustomValidator.cs
- Semaphore.cs
- MenuItemStyle.cs
- EntityDataSourceSelectedEventArgs.cs
- DataPagerCommandEventArgs.cs
- DependentTransaction.cs
- VoiceSynthesis.cs
- MarkupWriter.cs
- VirtualDirectoryMappingCollection.cs
- WsatServiceCertificate.cs
- SafeFileMappingHandle.cs
- Cursor.cs
- OrderByBuilder.cs
- UnsafeNativeMethods.cs
- Menu.cs
- TypeElementCollection.cs
- BuildResultCache.cs
- BindingMemberInfo.cs
- SubpageParaClient.cs
- SqlCaseSimplifier.cs
- BindingRestrictions.cs
- ImageFormat.cs
- WrapPanel.cs
- XPathScanner.cs
- ToolStripContentPanelDesigner.cs
- PersonalizationState.cs
- AddingNewEventArgs.cs
- UnsafeCollabNativeMethods.cs
- TypeSystem.cs
- AttributeCallbackBuilder.cs
- VBIdentifierTrimConverter.cs
- SrgsRule.cs
- InteropTrackingRecord.cs
- ProcessProtocolHandler.cs
- TrackingLocation.cs
- BuildManager.cs
- BuilderInfo.cs
- InputMethod.cs
- ObjectItemAssemblyLoader.cs
- InkSerializer.cs
- ConfigurationValidatorAttribute.cs
- Utils.cs
- SystemThemeKey.cs
- UIElementHelper.cs
- MailSettingsSection.cs
- Panel.cs
- XmlBoundElement.cs
- StreamGeometryContext.cs
- PrivilegedConfigurationManager.cs
- HelpKeywordAttribute.cs
- WaitingCursor.cs
- Pair.cs
- StrokeNode.cs
- ListDictionary.cs
- AuthStoreRoleProvider.cs
- WebPartCatalogAddVerb.cs
- SqlTypeConverter.cs
- ButtonBase.cs