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
- DataGridViewImageColumn.cs
- HttpResponseWrapper.cs
- State.cs
- GridViewUpdatedEventArgs.cs
- StrokeCollection.cs
- XPathSingletonIterator.cs
- SmtpLoginAuthenticationModule.cs
- ToolStripItemClickedEventArgs.cs
- EditCommandColumn.cs
- PerformanceCounter.cs
- DependencyObject.cs
- MarginsConverter.cs
- LineMetrics.cs
- TraceInternal.cs
- Misc.cs
- ActivityWithResultConverter.cs
- XmlReturnReader.cs
- HeaderedContentControl.cs
- EntityDataSourceSelectingEventArgs.cs
- ChannelTokenTypeConverter.cs
- WebPartCatalogCloseVerb.cs
- SurrogateEncoder.cs
- EncoderFallback.cs
- TemplateGroupCollection.cs
- MutexSecurity.cs
- PointAnimationUsingKeyFrames.cs
- SourceFileInfo.cs
- WebProxyScriptElement.cs
- basecomparevalidator.cs
- NetworkInterface.cs
- ConfigurationStrings.cs
- XmlArrayItemAttribute.cs
- InArgumentConverter.cs
- XmlNamespaceMappingCollection.cs
- EnvironmentPermission.cs
- SafeEventLogReadHandle.cs
- PrintDialog.cs
- AsyncStreamReader.cs
- SourceItem.cs
- DetailsViewDeletedEventArgs.cs
- SqlGenericUtil.cs
- NonValidatingSecurityTokenAuthenticator.cs
- CryptoApi.cs
- TdsRecordBufferSetter.cs
- DataList.cs
- SudsWriter.cs
- SelectionWordBreaker.cs
- VariableDesigner.xaml.cs
- MarshalDirectiveException.cs
- WindowProviderWrapper.cs
- StringAttributeCollection.cs
- Activity.cs
- ZipIOCentralDirectoryBlock.cs
- CodeMethodInvokeExpression.cs
- DesignerResources.cs
- PostBackOptions.cs
- Label.cs
- DbTransaction.cs
- BaseTemplatedMobileComponentEditor.cs
- PageCatalogPart.cs
- DispatcherSynchronizationContext.cs
- XmlnsDefinitionAttribute.cs
- ISessionStateStore.cs
- ClassHandlersStore.cs
- ObjectDataSourceFilteringEventArgs.cs
- ForwardPositionQuery.cs
- SecurityKeyIdentifier.cs
- ProgressBar.cs
- ValidationPropertyAttribute.cs
- BaseTemplateBuildProvider.cs
- OleDbCommandBuilder.cs
- DBDataPermissionAttribute.cs
- printdlgexmarshaler.cs
- ByteConverter.cs
- Object.cs
- AuthorizationRule.cs
- CellPartitioner.cs
- SqlNodeTypeOperators.cs
- PartitionResolver.cs
- DictionaryContent.cs
- userdatakeys.cs
- SplitContainer.cs
- HttpDebugHandler.cs
- EntityContainerRelationshipSet.cs
- DeleteHelper.cs
- basenumberconverter.cs
- CorrelationKey.cs
- ColumnMap.cs
- SafeNativeMethods.cs
- EntityContainer.cs
- ConfigurationValue.cs
- MouseGesture.cs
- UserControlBuildProvider.cs
- GlobalizationSection.cs
- Unit.cs
- TemplateControl.cs
- CorrelationActionMessageFilter.cs
- CodeNamespaceImportCollection.cs
- HierarchicalDataSourceDesigner.cs
- XmlAttribute.cs