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
- BatchParser.cs
- ApplicationServiceHelper.cs
- AuthenticationServiceManager.cs
- HandledEventArgs.cs
- WebRequestModulesSection.cs
- IgnoreSectionHandler.cs
- FlowDocumentReaderAutomationPeer.cs
- FontInfo.cs
- PeerApplicationLaunchInfo.cs
- BuildProvidersCompiler.cs
- PlacementWorkspace.cs
- serverconfig.cs
- TypeDefinition.cs
- ObjectSpanRewriter.cs
- ISAPIWorkerRequest.cs
- ViewGenerator.cs
- RequestChannel.cs
- EventLogEntry.cs
- HMACSHA1.cs
- UITypeEditor.cs
- MemberNameValidator.cs
- MobileErrorInfo.cs
- TableRowGroup.cs
- TransformerInfo.cs
- ExpressionPrefixAttribute.cs
- SQLBytes.cs
- WebPartVerbCollection.cs
- GraphicsPathIterator.cs
- DocumentViewerAutomationPeer.cs
- XmlStreamStore.cs
- ApplicationException.cs
- XmlNotation.cs
- IRCollection.cs
- SiblingIterators.cs
- ExceptionRoutedEventArgs.cs
- PersonalizationStateInfo.cs
- Fonts.cs
- ObjectView.cs
- OracleBoolean.cs
- EmptyCollection.cs
- DTCTransactionManager.cs
- CqlParser.cs
- DataGridHeaderBorder.cs
- RotateTransform.cs
- CheckBoxBaseAdapter.cs
- QueryOutputWriter.cs
- ResourceDescriptionAttribute.cs
- URLMembershipCondition.cs
- ZipIOExtraFieldZip64Element.cs
- TypedRowGenerator.cs
- DbgUtil.cs
- FilePrompt.cs
- SpellerHighlightLayer.cs
- CopyCodeAction.cs
- HostedHttpContext.cs
- assemblycache.cs
- ModelItem.cs
- BooleanAnimationUsingKeyFrames.cs
- TagPrefixCollection.cs
- NameValueConfigurationElement.cs
- ItemAutomationPeer.cs
- RemotingConfigParser.cs
- EventListener.cs
- StorageRoot.cs
- GridPattern.cs
- XmlDataProvider.cs
- VisualBasicDesignerHelper.cs
- LicenseManager.cs
- HttpPostedFile.cs
- BoundPropertyEntry.cs
- ButtonField.cs
- XmlSchemaObjectCollection.cs
- EntitySetBaseCollection.cs
- Decimal.cs
- WebPartEditorCancelVerb.cs
- AncillaryOps.cs
- BitmapEffectDrawing.cs
- WindowsStreamSecurityBindingElement.cs
- Formatter.cs
- XmlEncodedRawTextWriter.cs
- Interlocked.cs
- TextDecoration.cs
- XmlBinaryReader.cs
- SystemDiagnosticsSection.cs
- NotificationContext.cs
- Misc.cs
- WaitForChangedResult.cs
- SqlConnectionFactory.cs
- MdiWindowListStrip.cs
- RotateTransform.cs
- QueryGenerator.cs
- CustomLineCap.cs
- XamlBrushSerializer.cs
- XmlSchemaObjectTable.cs
- ViewSimplifier.cs
- StorageAssociationSetMapping.cs
- UriSection.cs
- XmlSchemaValidator.cs
- ControlValuePropertyAttribute.cs
- ScrollBar.cs