Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / WCF / IdentityModel / System / IdentityModel / CanonicalizationDriver.cs / 1305376 / CanonicalizationDriver.cs
//------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------- namespace System.IdentityModel { using System.Collections; using System.Collections.Generic; using System.Diagnostics; using System.IO; using System.Security.Cryptography; using System.Text; using System.Xml; sealed class CanonicalizationDriver { bool closeReadersAfterProcessing; XmlReader reader; string[] inclusivePrefixes; bool includeComments; public bool CloseReadersAfterProcessing { get { return this.closeReadersAfterProcessing; } set { this.closeReadersAfterProcessing = value; } } public bool IncludeComments { get { return this.includeComments; } set { this.includeComments = value; } } public string[] GetInclusivePrefixes() { return this.inclusivePrefixes; } public void Reset() { this.reader = null; } public void SetInclusivePrefixes(string[] inclusivePrefixes) { this.inclusivePrefixes = inclusivePrefixes; } public void SetInput(Stream stream) { if (stream == null) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("stream"); } this.reader = XmlReader.Create(stream); } public void SetInput(XmlReader reader) { if (reader == null) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("reader"); } this.reader = reader; } public byte[] GetBytes() { return GetMemoryStream().ToArray(); } public MemoryStream GetMemoryStream() { MemoryStream stream = new MemoryStream(); WriteTo(stream); stream.Seek(0, SeekOrigin.Begin); return stream; } public void WriteTo(HashAlgorithm hashAlgorithm) { WriteTo(new HashStream(hashAlgorithm)); } public void WriteTo(Stream canonicalStream) { if (this.reader != null) { XmlDictionaryReader dicReader = this.reader as XmlDictionaryReader; if ((dicReader != null) && (dicReader.CanCanonicalize)) { dicReader.MoveToContent(); dicReader.StartCanonicalization(canonicalStream, this.includeComments, this.inclusivePrefixes); dicReader.Skip(); dicReader.EndCanonicalization(); } else { XmlDictionaryWriter writer = XmlDictionaryWriter.CreateTextWriter(Stream.Null); if (this.inclusivePrefixes != null) { // Add a dummy element at the top and populate the namespace // declaration of all the inclusive prefixes. writer.WriteStartElement("a", reader.LookupNamespace(String.Empty)); for (int i = 0; i < this.inclusivePrefixes.Length; ++i) { string ns = reader.LookupNamespace(this.inclusivePrefixes[i]); if (ns != null) { writer.WriteXmlnsAttribute(this.inclusivePrefixes[i], ns); } } } writer.StartCanonicalization(canonicalStream, this.includeComments, this.inclusivePrefixes); writer.WriteNode(reader, false); writer.Flush(); writer.EndCanonicalization(); if (this.inclusivePrefixes != null) writer.WriteEndElement(); writer.Close(); } if (this.closeReadersAfterProcessing) { this.reader.Close(); } this.reader = null; } else { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidOperationException(SR.GetString(SR.NoInputIsSetForCanonicalization))); } } } } // 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
- LogicalTreeHelper.cs
- CriticalHandle.cs
- TdsValueSetter.cs
- SmtpNtlmAuthenticationModule.cs
- ProxyHelper.cs
- VisualTarget.cs
- ResourceReferenceKeyNotFoundException.cs
- SmiRecordBuffer.cs
- RSAProtectedConfigurationProvider.cs
- OleDbPropertySetGuid.cs
- InheritedPropertyChangedEventArgs.cs
- PageWrapper.cs
- UxThemeWrapper.cs
- XpsViewerException.cs
- SQLInt16Storage.cs
- XmlSerializerAssemblyAttribute.cs
- SystemInfo.cs
- SizeKeyFrameCollection.cs
- WorkflowMarkupSerializer.cs
- QueryContinueDragEvent.cs
- FrameSecurityDescriptor.cs
- FontWeight.cs
- TaskFactory.cs
- ErrorHandlingReceiver.cs
- GenericIdentity.cs
- MailHeaderInfo.cs
- TextRangeProviderWrapper.cs
- ParagraphResult.cs
- AttributeAction.cs
- TypefaceMap.cs
- SerializationHelper.cs
- SimpleHandlerBuildProvider.cs
- EventDescriptor.cs
- ClientRoleProvider.cs
- XPathBuilder.cs
- isolationinterop.cs
- LinqDataSourceContextEventArgs.cs
- MemoryStream.cs
- WmlLiteralTextAdapter.cs
- StrokeFIndices.cs
- BaseAppDomainProtocolHandler.cs
- StylusPoint.cs
- SyncOperationState.cs
- ComplusEndpointConfigContainer.cs
- ExtensionWindowHeader.cs
- InheritanceRules.cs
- FileUtil.cs
- DiagnosticTrace.cs
- RawStylusInput.cs
- KeyboardNavigation.cs
- DataGridViewCellMouseEventArgs.cs
- CheckBoxList.cs
- TypeDelegator.cs
- MetadataCacheItem.cs
- HtmlWindowCollection.cs
- shaperfactoryquerycachekey.cs
- Int32Collection.cs
- OleAutBinder.cs
- IndicShape.cs
- MouseActionConverter.cs
- MessageEncodingBindingElementImporter.cs
- StylusEventArgs.cs
- WindowsIdentity.cs
- DoubleUtil.cs
- UmAlQuraCalendar.cs
- parserscommon.cs
- FrameDimension.cs
- SecurityCredentialsManager.cs
- Graphics.cs
- ProfileGroupSettingsCollection.cs
- DbConnectionPoolIdentity.cs
- CodeThrowExceptionStatement.cs
- StreamHelper.cs
- AutoGeneratedFieldProperties.cs
- ArrayConverter.cs
- InputQueue.cs
- SchemaImporterExtensionElement.cs
- Enlistment.cs
- HandlerBase.cs
- SqlInternalConnection.cs
- DefaultTypeArgumentAttribute.cs
- ListChangedEventArgs.cs
- WrapPanel.cs
- ObjectCloneHelper.cs
- DirectoryInfo.cs
- ClonableStack.cs
- ToggleProviderWrapper.cs
- CharEnumerator.cs
- DefaultObjectSerializer.cs
- Rect.cs
- SmiRecordBuffer.cs
- FillErrorEventArgs.cs
- SafeRightsManagementPubHandle.cs
- GC.cs
- QueryAsyncResult.cs
- HatchBrush.cs
- OleDbPermission.cs
- LongTypeConverter.cs
- BoolLiteral.cs
- BuildProvider.cs