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
- DataServiceStreamProviderWrapper.cs
- LassoSelectionBehavior.cs
- ParserContext.cs
- ItemsControl.cs
- FormatConvertedBitmap.cs
- XmlAttributeCache.cs
- ObjectDataSourceView.cs
- SqlXmlStorage.cs
- ThemeDictionaryExtension.cs
- TimeSpanMinutesOrInfiniteConverter.cs
- ScriptReferenceBase.cs
- ControlCachePolicy.cs
- EntityStoreSchemaGenerator.cs
- ConnectionManagementElementCollection.cs
- SmtpReplyReader.cs
- ZipIOExtraFieldPaddingElement.cs
- ExpiredSecurityTokenException.cs
- HttpCookiesSection.cs
- storepermission.cs
- GeometryHitTestParameters.cs
- DataTablePropertyDescriptor.cs
- DBCommandBuilder.cs
- Cell.cs
- VirtualizingStackPanel.cs
- BuildProviderAppliesToAttribute.cs
- Object.cs
- TypeElement.cs
- AudioException.cs
- ExpressionBinding.cs
- PageAsyncTaskManager.cs
- XamlStyleSerializer.cs
- BordersPage.cs
- EmptyStringExpandableObjectConverter.cs
- DbModificationClause.cs
- HttpApplicationFactory.cs
- MetabaseServerConfig.cs
- AxParameterData.cs
- IsolationInterop.cs
- SortDescription.cs
- DataGridPageChangedEventArgs.cs
- SelectorItemAutomationPeer.cs
- AttachmentService.cs
- SamlSecurityToken.cs
- SqlAliaser.cs
- QuestionEventArgs.cs
- CustomLineCap.cs
- BindingElementCollection.cs
- DebugControllerThread.cs
- DependencyObjectType.cs
- RootProjectionNode.cs
- TreeViewHitTestInfo.cs
- GlyphsSerializer.cs
- XmlAtomicValue.cs
- GetImportFileNameRequest.cs
- Renderer.cs
- HostSecurityManager.cs
- DES.cs
- Calendar.cs
- HttpException.cs
- ToolStripPanelSelectionBehavior.cs
- SafeHGlobalHandleCritical.cs
- DataGridrowEditEndingEventArgs.cs
- DataGridViewElement.cs
- DataTablePropertyDescriptor.cs
- SecureConversationVersion.cs
- PolyQuadraticBezierSegmentFigureLogic.cs
- LockCookie.cs
- StylusPlugInCollection.cs
- sqlpipe.cs
- EdmComplexPropertyAttribute.cs
- CapabilitiesSection.cs
- CodeParameterDeclarationExpression.cs
- NameSpaceEvent.cs
- MergeLocalizationDirectives.cs
- OpenTypeLayoutCache.cs
- ToolStripControlHost.cs
- TypeConverter.cs
- PenThreadWorker.cs
- TempFiles.cs
- HtmlPanelAdapter.cs
- RequestNavigateEventArgs.cs
- RsaKeyIdentifierClause.cs
- XmlSerializerNamespaces.cs
- ParameterInfo.cs
- NetworkStream.cs
- URL.cs
- ListBase.cs
- FixUpCollection.cs
- TdsEnums.cs
- formatstringdialog.cs
- DefaultBinder.cs
- SettingsAttributeDictionary.cs
- RegexMatch.cs
- Typography.cs
- NativeObjectSecurity.cs
- EventEntry.cs
- PropertyPanel.cs
- MethodMessage.cs
- StringValidatorAttribute.cs
- StringPropertyBuilder.cs