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
- ContainerAction.cs
- IntSecurity.cs
- Expander.cs
- SqlDataSourceQueryEditor.cs
- IdentityModelStringsVersion1.cs
- PropagatorResult.cs
- XmlSchemaInfo.cs
- ColorTransform.cs
- ExtendedTransformFactory.cs
- PngBitmapEncoder.cs
- TrackingQuery.cs
- DataFormat.cs
- AuthenticationModulesSection.cs
- PreProcessor.cs
- ImageFormat.cs
- XsltException.cs
- TransactionInterop.cs
- StateItem.cs
- OwnerDrawPropertyBag.cs
- SafeRegistryHandle.cs
- ConstantSlot.cs
- PropertyMetadata.cs
- DataGridViewRowStateChangedEventArgs.cs
- CoreChannel.cs
- GenericWebPart.cs
- BCLDebug.cs
- AutomationElement.cs
- PeerNodeTraceRecord.cs
- Configuration.cs
- PostBackOptions.cs
- LinkedResourceCollection.cs
- TraceSection.cs
- SymLanguageVendor.cs
- safelinkcollection.cs
- DeleteStoreRequest.cs
- IdleTimeoutMonitor.cs
- LocatorManager.cs
- HttpRawResponse.cs
- IResourceProvider.cs
- EventWaitHandle.cs
- DataGridViewCellStyleBuilderDialog.cs
- SafeLocalMemHandle.cs
- ScrollBarAutomationPeer.cs
- LogicalExpr.cs
- SQLInt64.cs
- SqlDesignerDataSourceView.cs
- OleDbConnectionInternal.cs
- ProtocolsConfigurationHandler.cs
- XmlValidatingReaderImpl.cs
- UmAlQuraCalendar.cs
- ParseChildrenAsPropertiesAttribute.cs
- ContainerParagraph.cs
- ToolStripButton.cs
- ClientEventManager.cs
- XmlEnumAttribute.cs
- OracleLob.cs
- ButtonBase.cs
- __ComObject.cs
- PerformanceCountersElement.cs
- ClientTarget.cs
- SqlBulkCopy.cs
- SqlDataSourceParameterParser.cs
- Vector3DAnimationBase.cs
- WriteFileContext.cs
- SqlNodeAnnotation.cs
- PositiveTimeSpanValidatorAttribute.cs
- MeasurementDCInfo.cs
- DataSourceDescriptorCollection.cs
- CompositeKey.cs
- TagNameToTypeMapper.cs
- XmlReflectionMember.cs
- XmlSchemaGroupRef.cs
- PerfCounterSection.cs
- DataBindingValueUIHandler.cs
- System.Data_BID.cs
- SchemeSettingElementCollection.cs
- XmlAtomicValue.cs
- ExtendedProtectionPolicyTypeConverter.cs
- TypeUtil.cs
- InstancePersistence.cs
- MasterPageBuildProvider.cs
- StringReader.cs
- CutCopyPasteHelper.cs
- ValidationError.cs
- FragmentQueryProcessor.cs
- ToggleButton.cs
- Types.cs
- Condition.cs
- HttpAsyncResult.cs
- ServiceDeploymentInfo.cs
- HttpCacheVary.cs
- HttpHandlersSection.cs
- MonitorWrapper.cs
- ArglessEventHandlerProxy.cs
- DoubleCollectionConverter.cs
- ListBoxItem.cs
- URIFormatException.cs
- TypedRowHandler.cs
- ButtonPopupAdapter.cs
- BodyWriter.cs