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
- SqlInternalConnectionTds.cs
- BrowserCapabilitiesCodeGenerator.cs
- DataGridViewColumnConverter.cs
- RecommendedAsConfigurableAttribute.cs
- TreeNodeStyleCollection.cs
- ListViewEditEventArgs.cs
- EdmFunction.cs
- SoapEnumAttribute.cs
- ValidatorUtils.cs
- Ipv6Element.cs
- cookie.cs
- ListViewItem.cs
- smtppermission.cs
- _FixedSizeReader.cs
- DocumentXPathNavigator.cs
- XmlSchemaFacet.cs
- PieceDirectory.cs
- Rectangle.cs
- CodeTryCatchFinallyStatement.cs
- XamlSerializerUtil.cs
- MembershipPasswordException.cs
- Mappings.cs
- ProxyElement.cs
- QueryCacheManager.cs
- ReversePositionQuery.cs
- DuplicateContext.cs
- DocobjHost.cs
- ApplyImportsAction.cs
- JoinCqlBlock.cs
- safemediahandle.cs
- RawStylusInputCustomDataList.cs
- DataGridViewMethods.cs
- ExpressionPrefixAttribute.cs
- ButtonDesigner.cs
- LockRecoveryTask.cs
- Substitution.cs
- ExpressionStringBuilder.cs
- ResXResourceWriter.cs
- AssociationSetEnd.cs
- UInt32Storage.cs
- WinEventTracker.cs
- MenuTracker.cs
- SingleObjectCollection.cs
- ThreadPoolTaskScheduler.cs
- sqlstateclientmanager.cs
- WindowPatternIdentifiers.cs
- OleDbParameterCollection.cs
- AdornerHitTestResult.cs
- Win32.cs
- EndGetFileNameFromUserRequest.cs
- XmlWhitespace.cs
- ValueExpressions.cs
- DictionaryTraceRecord.cs
- OleDbConnectionInternal.cs
- DataPagerFieldCommandEventArgs.cs
- ResourceAssociationType.cs
- DrawingAttributesDefaultValueFactory.cs
- PageEventArgs.cs
- OpCellTreeNode.cs
- HttpConfigurationContext.cs
- ZipArchive.cs
- AutomationPatternInfo.cs
- Utils.cs
- MediaElementAutomationPeer.cs
- SmiRequestExecutor.cs
- PresentationTraceSources.cs
- GroupBox.cs
- Translator.cs
- TextServicesCompartmentEventSink.cs
- TextMessageEncodingBindingElement.cs
- DataGridViewLayoutData.cs
- EdmRelationshipNavigationPropertyAttribute.cs
- ExplicitDiscriminatorMap.cs
- MarkedHighlightComponent.cs
- XsltContext.cs
- EntityDataSourceContextCreatedEventArgs.cs
- SetIterators.cs
- LocalizationParserHooks.cs
- StylusPointPropertyUnit.cs
- ITreeGenerator.cs
- BaseParser.cs
- Peer.cs
- ObjectListCommandCollection.cs
- WebPartAddingEventArgs.cs
- EntityDataSourceSelectedEventArgs.cs
- KeyGestureConverter.cs
- CodeCatchClauseCollection.cs
- FixedSOMElement.cs
- SqlColumnizer.cs
- MobileTemplatedControlDesigner.cs
- RawKeyboardInputReport.cs
- TaiwanCalendar.cs
- Vector.cs
- RenderOptions.cs
- EventlogProvider.cs
- TypeBuilderInstantiation.cs
- HttpModuleAction.cs
- SingleBodyParameterMessageFormatter.cs
- ListMarkerLine.cs
- ParameterCollection.cs