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
- AutomationPropertyInfo.cs
- CombinedTcpChannel.cs
- EventPrivateKey.cs
- WebPartEditorCancelVerb.cs
- RecognitionResult.cs
- ToolStripGripRenderEventArgs.cs
- CommentEmitter.cs
- HtmlTableRowCollection.cs
- RequestCachePolicyConverter.cs
- PrintingPermissionAttribute.cs
- PerformanceCountersElement.cs
- MarkupCompiler.cs
- HttpCookieCollection.cs
- Queue.cs
- MSAANativeProvider.cs
- FileFormatException.cs
- ErrorFormatterPage.cs
- LogSwitch.cs
- Container.cs
- EasingQuaternionKeyFrame.cs
- SafeRightsManagementSessionHandle.cs
- ErrorTableItemStyle.cs
- ParallelQuery.cs
- UrlPath.cs
- VariableBinder.cs
- CodeTypeParameterCollection.cs
- Slider.cs
- OutKeywords.cs
- ApplicationFileParser.cs
- OdbcHandle.cs
- XmlException.cs
- DbDeleteCommandTree.cs
- DrawingAttributeSerializer.cs
- XamlTreeBuilder.cs
- TypeElementCollection.cs
- OpenFileDialog.cs
- HotCommands.cs
- XmlSerializerFactory.cs
- PermissionSetTriple.cs
- ToolBar.cs
- EncryptedKeyIdentifierClause.cs
- RectangleHotSpot.cs
- MenuAdapter.cs
- base64Transforms.cs
- DisplayInformation.cs
- DetailsViewPagerRow.cs
- Substitution.cs
- Trace.cs
- WorkflowOperationBehavior.cs
- DoubleAnimationBase.cs
- StringSource.cs
- Error.cs
- OutputScopeManager.cs
- KeyTimeConverter.cs
- GACIdentityPermission.cs
- RectAnimationBase.cs
- dataobject.cs
- SqlDataSource.cs
- UriExt.cs
- MatrixKeyFrameCollection.cs
- SettingsPropertyNotFoundException.cs
- HttpException.cs
- IPPacketInformation.cs
- MaterialGroup.cs
- XmlNavigatorFilter.cs
- LineVisual.cs
- WebPartManagerInternals.cs
- ObjectSecurityT.cs
- BufferedOutputStream.cs
- RelOps.cs
- KerberosSecurityTokenParameters.cs
- DataSvcMapFileSerializer.cs
- HttpException.cs
- Reference.cs
- FontStyles.cs
- WebPartEditorCancelVerb.cs
- SyndicationContent.cs
- Utils.cs
- EventHandlerList.cs
- DataColumnChangeEvent.cs
- SQLMoney.cs
- Enumerable.cs
- ErasingStroke.cs
- Object.cs
- MarkupObject.cs
- GiveFeedbackEventArgs.cs
- EntityTemplateUserControl.cs
- IQueryable.cs
- LicenseManager.cs
- DataBoundControlParameterTarget.cs
- MetadataArtifactLoaderComposite.cs
- AuthorizationSection.cs
- ReadOnlyObservableCollection.cs
- BypassElementCollection.cs
- ConfigurationStrings.cs
- XmlNodeList.cs
- SynchronizationFilter.cs
- SQlBooleanStorage.cs
- DataGridTableCollection.cs
- UnmanagedMemoryStream.cs