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
- SubpageParagraph.cs
- CodeAttributeDeclarationCollection.cs
- CreateWorkflowOwnerCommand.cs
- FunctionMappingTranslator.cs
- HttpMethodAttribute.cs
- UnsafeNativeMethodsPenimc.cs
- AsyncCodeActivityContext.cs
- ValueUtilsSmi.cs
- GeneralTransform3DCollection.cs
- HostedElements.cs
- TemplateControlBuildProvider.cs
- RtfToXamlLexer.cs
- xdrvalidator.cs
- Normalization.cs
- StreamWithDictionary.cs
- EventBuilder.cs
- ProfileServiceManager.cs
- MappingException.cs
- Win32Native.cs
- DataSetViewSchema.cs
- Focus.cs
- Utils.cs
- SymbolMethod.cs
- XdrBuilder.cs
- TabletCollection.cs
- CachedPathData.cs
- GridViewEditEventArgs.cs
- PackWebResponse.cs
- Menu.cs
- UserControlCodeDomTreeGenerator.cs
- MetadataCache.cs
- WindowsFormsSynchronizationContext.cs
- Point4D.cs
- XmlCharCheckingReader.cs
- DataGridViewTextBoxCell.cs
- Trace.cs
- ComplexPropertyEntry.cs
- XmlLanguage.cs
- CancellationHandlerDesigner.cs
- WebPermission.cs
- SwitchElementsCollection.cs
- ItemCollection.cs
- TimeSpanValidator.cs
- TaskExtensions.cs
- CqlLexerHelpers.cs
- StorageScalarPropertyMapping.cs
- Range.cs
- Latin1Encoding.cs
- CharacterShapingProperties.cs
- StorageAssociationSetMapping.cs
- TraceHandlerErrorFormatter.cs
- TextRangeSerialization.cs
- SessionParameter.cs
- System.Data.OracleClient_BID.cs
- CommonRemoteMemoryBlock.cs
- DrawingImage.cs
- FilteredDataSetHelper.cs
- ProcessInputEventArgs.cs
- SplitterCancelEvent.cs
- TextReader.cs
- SecurityBindingElementImporter.cs
- BrowserDefinition.cs
- SuppressMergeCheckAttribute.cs
- ParserContext.cs
- DataChangedEventManager.cs
- FacetChecker.cs
- GetReadStreamResult.cs
- GlobalItem.cs
- EntityTypeEmitter.cs
- SimpleFieldTemplateFactory.cs
- Operand.cs
- ToolStripMenuItemDesigner.cs
- BaseAppDomainProtocolHandler.cs
- BooleanFunctions.cs
- DataGridLinkButton.cs
- XslTransform.cs
- ThreadSafeList.cs
- Soap12ServerProtocol.cs
- LockCookie.cs
- SmtpReplyReader.cs
- ListSourceHelper.cs
- ToolStripComboBox.cs
- JsonQueryStringConverter.cs
- ToolStripLocationCancelEventArgs.cs
- IRCollection.cs
- SoapIncludeAttribute.cs
- MimePart.cs
- TraceFilter.cs
- XmlSchemaIdentityConstraint.cs
- CanonicalFontFamilyReference.cs
- DeploymentExceptionMapper.cs
- MetadataSerializer.cs
- NamedElement.cs
- DifferencingCollection.cs
- TdsParameterSetter.cs
- WebPartConnectionCollection.cs
- ProcessStartInfo.cs
- HtmlInputFile.cs
- NetworkAddressChange.cs
- TextSimpleMarkerProperties.cs