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
- MethodExpression.cs
- DescriptionCreator.cs
- AppDomainFactory.cs
- DataGridViewSelectedColumnCollection.cs
- Merger.cs
- DataRecordInternal.cs
- FamilyMapCollection.cs
- ToolStripPanel.cs
- LambdaCompiler.Statements.cs
- BitConverter.cs
- OdbcEnvironmentHandle.cs
- X509CertificateCollection.cs
- ImageSource.cs
- PropertyPushdownHelper.cs
- ParameterExpression.cs
- DiagnosticStrings.cs
- HelloOperation11AsyncResult.cs
- CreateRefExpr.cs
- BlockCollection.cs
- IIS7WorkerRequest.cs
- DynamicDiscoSearcher.cs
- NameSpaceExtractor.cs
- DataGridViewRowHeightInfoNeededEventArgs.cs
- UserNamePasswordClientCredential.cs
- TypeInfo.cs
- _WinHttpWebProxyDataBuilder.cs
- ColorTranslator.cs
- OleDbCommand.cs
- NotImplementedException.cs
- ConfigXmlWhitespace.cs
- MessageContractExporter.cs
- ObjectHandle.cs
- CatalogPartCollection.cs
- SafeCryptContextHandle.cs
- Rotation3DAnimationBase.cs
- StringInfo.cs
- UnsafeNativeMethodsCLR.cs
- ObjectDataSource.cs
- Enlistment.cs
- HtmlHead.cs
- PrintController.cs
- NativeConfigurationLoader.cs
- MissingSatelliteAssemblyException.cs
- Action.cs
- HandlerBase.cs
- BitmapEffect.cs
- ContainerVisual.cs
- FormatterServices.cs
- XslTransform.cs
- ImmutableCollection.cs
- SendMailErrorEventArgs.cs
- SqlTriggerAttribute.cs
- Thumb.cs
- Transform.cs
- WebPartMenu.cs
- ChannelToken.cs
- EventLogReader.cs
- ConfigXmlCDataSection.cs
- HtmlInputReset.cs
- RotateTransform3D.cs
- TextDecorationLocationValidation.cs
- MetafileHeader.cs
- Message.cs
- UserNamePasswordValidator.cs
- LineBreakRecord.cs
- PolyLineSegment.cs
- DoubleLinkList.cs
- ObjectQueryProvider.cs
- SByte.cs
- PeerInvitationResponse.cs
- DataServiceProcessingPipelineEventArgs.cs
- Baml2006KnownTypes.cs
- SecUtil.cs
- FlowDocumentScrollViewer.cs
- DATA_BLOB.cs
- OdbcConnectionString.cs
- QueryStringConverter.cs
- HttpResponseInternalWrapper.cs
- TabRenderer.cs
- InputScopeAttribute.cs
- RadioButtonBaseAdapter.cs
- IntegerValidator.cs
- FileSystemEventArgs.cs
- SynchronizingStream.cs
- GridViewColumnCollection.cs
- RuleElement.cs
- CfgArc.cs
- ExpressionList.cs
- DisplayInformation.cs
- ExpressionBuilder.cs
- DisplayMemberTemplateSelector.cs
- VariableQuery.cs
- ArgIterator.cs
- XamlTypeMapper.cs
- AvtEvent.cs
- FactoryMaker.cs
- VisualTreeUtils.cs
- Exception.cs
- HtmlControlPersistable.cs
- StructuralCache.cs