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
- MsmqHostedTransportManager.cs
- XmlValidatingReaderImpl.cs
- PersonalizationProviderHelper.cs
- GeometryHitTestParameters.cs
- XmlWriterDelegator.cs
- XDRSchema.cs
- HitTestResult.cs
- ToolBarButton.cs
- initElementDictionary.cs
- Scalars.cs
- BinHexEncoder.cs
- objectresult_tresulttype.cs
- TextContainerHelper.cs
- SchemaCollectionCompiler.cs
- DiagnosticsConfigurationHandler.cs
- StyleXamlParser.cs
- SelectorAutomationPeer.cs
- FileDialogCustomPlacesCollection.cs
- _TimerThread.cs
- ThemeDirectoryCompiler.cs
- InteropExecutor.cs
- ToolStripOverflow.cs
- ParallelLoopState.cs
- CodeAttributeArgument.cs
- DataGrid.cs
- DeviceContext2.cs
- JsonWriter.cs
- DataGridTableCollection.cs
- DayRenderEvent.cs
- HttpRuntimeSection.cs
- TaiwanCalendar.cs
- Timer.cs
- parserscommon.cs
- TextPointer.cs
- DataControlField.cs
- AxHost.cs
- PasswordDeriveBytes.cs
- PauseStoryboard.cs
- GeometryHitTestResult.cs
- GetRecipientRequest.cs
- AdornedElementPlaceholder.cs
- OrderedHashRepartitionStream.cs
- MessageSmuggler.cs
- FilterQueryOptionExpression.cs
- ManipulationLogic.cs
- XmlExceptionHelper.cs
- DelimitedListTraceListener.cs
- ChildTable.cs
- PassportAuthenticationModule.cs
- ApplicationFileParser.cs
- TwoPhaseCommit.cs
- SpecularMaterial.cs
- HttpListenerException.cs
- DrawingGroupDrawingContext.cs
- FileUtil.cs
- DataSourceComponent.cs
- ByteBufferPool.cs
- ClientSettings.cs
- CellConstant.cs
- Context.cs
- XmlAnyElementAttribute.cs
- DatatypeImplementation.cs
- XhtmlBasicLinkAdapter.cs
- ProtocolsConfigurationEntry.cs
- EditorPart.cs
- ServiceOperationUIEditor.cs
- ProxyWebPart.cs
- ControlValuePropertyAttribute.cs
- RequiredFieldValidator.cs
- ProcessHostFactoryHelper.cs
- XmlSchemaExporter.cs
- StorageTypeMapping.cs
- ApplicationContext.cs
- SQLBytes.cs
- SchemaInfo.cs
- HttpCachePolicyElement.cs
- RuntimeArgument.cs
- TextDecorationCollectionConverter.cs
- AnimationStorage.cs
- BaseTemplateBuildProvider.cs
- DataGrid.cs
- SizeConverter.cs
- SchemaImporter.cs
- ThreadExceptionDialog.cs
- ProtectedConfiguration.cs
- ParameterCollection.cs
- QueryResponse.cs
- StateBag.cs
- DetailsViewInsertedEventArgs.cs
- PersonalizationEntry.cs
- RawStylusInputCustomData.cs
- AstTree.cs
- DirectoryGroupQuery.cs
- TextFormatterContext.cs
- IntSecurity.cs
- Gdiplus.cs
- FormViewInsertEventArgs.cs
- CodeThrowExceptionStatement.cs
- BindingContext.cs
- _SslSessionsCache.cs