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
- UserControlParser.cs
- columnmapfactory.cs
- SQLResource.cs
- BitmapEffectvisualstate.cs
- SortDescriptionCollection.cs
- ToolStrip.cs
- ImmutableObjectAttribute.cs
- ConnectionProviderAttribute.cs
- CompilerScopeManager.cs
- Cell.cs
- BitmapMetadataBlob.cs
- XmlSchemaRedefine.cs
- TextTreeObjectNode.cs
- MainMenu.cs
- SymDocumentType.cs
- StoreContentChangedEventArgs.cs
- DataGridColumnHeaderAutomationPeer.cs
- StructuralObject.cs
- CodeDirectionExpression.cs
- PropertyGridEditorPart.cs
- XmlSignificantWhitespace.cs
- WindowsGraphics2.cs
- BamlWriter.cs
- ComplexObject.cs
- TextRunProperties.cs
- GridItemProviderWrapper.cs
- XmlElement.cs
- __Filters.cs
- ProfilePropertySettings.cs
- CurrencyWrapper.cs
- StorageComplexTypeMapping.cs
- SimpleType.cs
- RuntimeConfig.cs
- TypeDescriptionProvider.cs
- BaseResourcesBuildProvider.cs
- LinqDataView.cs
- SecurityDescriptor.cs
- GcSettings.cs
- HandlerFactoryWrapper.cs
- RequestCacheValidator.cs
- DisplayNameAttribute.cs
- SerializationStore.cs
- Predicate.cs
- ResourcesChangeInfo.cs
- CustomAttributeFormatException.cs
- DriveInfo.cs
- NetStream.cs
- FloaterBaseParaClient.cs
- InputScopeNameConverter.cs
- SQLMoneyStorage.cs
- BrushValueSerializer.cs
- DetailsViewPagerRow.cs
- IDQuery.cs
- FtpWebRequest.cs
- X509CertificateCollection.cs
- WindowsFont.cs
- DbParameterCollectionHelper.cs
- ObjectDataSourceMethodEventArgs.cs
- DiscoveryReferences.cs
- DataServiceResponse.cs
- Hyperlink.cs
- EventManager.cs
- xmlfixedPageInfo.cs
- SqlLiftIndependentRowExpressions.cs
- SqlColumnizer.cs
- ScrollChrome.cs
- ExpressionBinding.cs
- InvariantComparer.cs
- ImageDesigner.cs
- DesignerTextViewAdapter.cs
- ThreadPool.cs
- GridEntry.cs
- Int64Converter.cs
- EdmToObjectNamespaceMap.cs
- DataTableCollection.cs
- SqlConnectionFactory.cs
- SystemShuttingDownException.cs
- ProxyWebPartConnectionCollection.cs
- GACMembershipCondition.cs
- ComponentResourceKey.cs
- DownloadProgressEventArgs.cs
- TextBox.cs
- DropShadowBitmapEffect.cs
- SqlMethods.cs
- Hex.cs
- ArrangedElement.cs
- AssemblyCache.cs
- ProfileService.cs
- SoapSchemaExporter.cs
- ClientTargetCollection.cs
- RegisteredDisposeScript.cs
- StatusBarDesigner.cs
- ApplicationDirectory.cs
- ComplexType.cs
- NopReturnReader.cs
- DiagnosticsConfigurationHandler.cs
- OracleFactory.cs
- WorkflowApplicationUnhandledExceptionEventArgs.cs
- TimeSpanOrInfiniteConverter.cs
- TextBox.cs