Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / WCF / IdentityModel / System / IdentityModel / Tokens / BinaryKeyIdentifierClause.cs / 1305376 / BinaryKeyIdentifierClause.cs
//------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------- namespace System.IdentityModel.Tokens { using System.Globalization; using HexBinary = System.Runtime.Remoting.Metadata.W3cXsd2001.SoapHexBinary; public abstract class BinaryKeyIdentifierClause : SecurityKeyIdentifierClause { readonly byte[] identificationData; protected BinaryKeyIdentifierClause(string clauseType, byte[] identificationData, bool cloneBuffer) : this(clauseType, identificationData, cloneBuffer, null, 0) { } protected BinaryKeyIdentifierClause(string clauseType, byte[] identificationData, bool cloneBuffer, byte[] derivationNonce, int derivationLength) : base(clauseType, derivationNonce, derivationLength) { if (identificationData == null) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentNullException("identificationData")); } if (identificationData.Length == 0) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentOutOfRangeException("identificationData", SR.GetString(SR.LengthMustBeGreaterThanZero))); } if (cloneBuffer) { this.identificationData = SecurityUtils.CloneBuffer(identificationData); } else { this.identificationData = identificationData; } } public byte[] GetBuffer() { return SecurityUtils.CloneBuffer(this.identificationData); } protected byte[] GetRawBuffer() { return this.identificationData; } public override bool Matches(SecurityKeyIdentifierClause keyIdentifierClause) { BinaryKeyIdentifierClause that = keyIdentifierClause as BinaryKeyIdentifierClause; // 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.identificationData)); } public bool Matches(byte[] data) { return Matches(data, 0); } public bool Matches(byte[] data, int offset) { if (offset < 0) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentOutOfRangeException("offset", SR.GetString(SR.ValueMustBeNonNegative))); } return SecurityUtils.MatchesBuffer(this.identificationData, 0, data, offset); } internal string ToBase64String() { return Convert.ToBase64String(this.identificationData); } internal string ToHexString() { return new HexBinary(this.identificationData).ToString(); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------- namespace System.IdentityModel.Tokens { using System.Globalization; using HexBinary = System.Runtime.Remoting.Metadata.W3cXsd2001.SoapHexBinary; public abstract class BinaryKeyIdentifierClause : SecurityKeyIdentifierClause { readonly byte[] identificationData; protected BinaryKeyIdentifierClause(string clauseType, byte[] identificationData, bool cloneBuffer) : this(clauseType, identificationData, cloneBuffer, null, 0) { } protected BinaryKeyIdentifierClause(string clauseType, byte[] identificationData, bool cloneBuffer, byte[] derivationNonce, int derivationLength) : base(clauseType, derivationNonce, derivationLength) { if (identificationData == null) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentNullException("identificationData")); } if (identificationData.Length == 0) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentOutOfRangeException("identificationData", SR.GetString(SR.LengthMustBeGreaterThanZero))); } if (cloneBuffer) { this.identificationData = SecurityUtils.CloneBuffer(identificationData); } else { this.identificationData = identificationData; } } public byte[] GetBuffer() { return SecurityUtils.CloneBuffer(this.identificationData); } protected byte[] GetRawBuffer() { return this.identificationData; } public override bool Matches(SecurityKeyIdentifierClause keyIdentifierClause) { BinaryKeyIdentifierClause that = keyIdentifierClause as BinaryKeyIdentifierClause; // 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.identificationData)); } public bool Matches(byte[] data) { return Matches(data, 0); } public bool Matches(byte[] data, int offset) { if (offset < 0) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentOutOfRangeException("offset", SR.GetString(SR.ValueMustBeNonNegative))); } return SecurityUtils.MatchesBuffer(this.identificationData, 0, data, offset); } internal string ToBase64String() { return Convert.ToBase64String(this.identificationData); } internal string ToHexString() { return new HexBinary(this.identificationData).ToString(); } } } // 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
- WebServiceHost.cs
- SQLUtility.cs
- XDeferredAxisSource.cs
- Package.cs
- DSASignatureDeformatter.cs
- AsyncOperationContext.cs
- LineBreak.cs
- EventlogProvider.cs
- XmlAttributeAttribute.cs
- Pair.cs
- UnmanagedMemoryStream.cs
- EventLogEntryCollection.cs
- ReachFixedDocumentSerializer.cs
- MailSettingsSection.cs
- EmbeddedMailObjectsCollection.cs
- ListItemParagraph.cs
- iisPickupDirectory.cs
- HiddenFieldPageStatePersister.cs
- SystemWebCachingSectionGroup.cs
- DecimalSumAggregationOperator.cs
- FrameworkObject.cs
- SqlVisitor.cs
- XmlSchemaFacet.cs
- recordstate.cs
- StylusTouchDevice.cs
- SqlCommand.cs
- TextCompositionManager.cs
- XmlBinaryWriterSession.cs
- DataGridViewRowEventArgs.cs
- SQLRoleProvider.cs
- DataServiceQueryException.cs
- GeneratedCodeAttribute.cs
- UseManagedPresentationBindingElement.cs
- MailWebEventProvider.cs
- ButtonPopupAdapter.cs
- ContractNamespaceAttribute.cs
- HandlerMappingMemo.cs
- XNameTypeConverter.cs
- ObjectNotFoundException.cs
- EventLevel.cs
- Button.cs
- ProfileProvider.cs
- BlurBitmapEffect.cs
- Ticks.cs
- RSAPKCS1SignatureDeformatter.cs
- FileInfo.cs
- PersonalizablePropertyEntry.cs
- BaseTemplateParser.cs
- FixedFlowMap.cs
- XmlImplementation.cs
- KeyTimeConverter.cs
- ReferenceEqualityComparer.cs
- TextSerializer.cs
- DbProviderFactoriesConfigurationHandler.cs
- CaretElement.cs
- Point3D.cs
- XmlNavigatorStack.cs
- WorkflowFormatterBehavior.cs
- PathGeometry.cs
- TableLayoutStyle.cs
- TreeNodeConverter.cs
- HttpClientCertificate.cs
- ImageListStreamer.cs
- CustomCategoryAttribute.cs
- IteratorDescriptor.cs
- ComboBox.cs
- DataSourceDescriptorCollection.cs
- Delegate.cs
- MarshalDirectiveException.cs
- NetworkInformationException.cs
- AssemblyResourceLoader.cs
- NavigatingCancelEventArgs.cs
- SizeF.cs
- MatrixTransform3D.cs
- Html32TextWriter.cs
- TextRangeBase.cs
- DesignerCapabilities.cs
- MimeParameters.cs
- OnOperation.cs
- QilValidationVisitor.cs
- ObjectDataSourceFilteringEventArgs.cs
- ZoneButton.cs
- PageContentAsyncResult.cs
- CancelEventArgs.cs
- SqlParameter.cs
- MetadataResolver.cs
- PropertyDescriptorCollection.cs
- WebPartManagerInternals.cs
- TreeViewAutomationPeer.cs
- TextTabProperties.cs
- BitmapEffectState.cs
- DbResourceAllocator.cs
- ControlCachePolicy.cs
- TextEffect.cs
- LookupBindingPropertiesAttribute.cs
- RelationshipDetailsCollection.cs
- AndCondition.cs
- PenThreadWorker.cs
- MimeTypePropertyAttribute.cs
- GlyphCache.cs