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
- CodeCommentStatement.cs
- PassportAuthentication.cs
- DependentTransaction.cs
- WebPartRestoreVerb.cs
- View.cs
- SafeNativeMethodsMilCoreApi.cs
- NativeMethods.cs
- FixedPageProcessor.cs
- Convert.cs
- GroupBox.cs
- KeyValuePairs.cs
- DocumentPageHost.cs
- PathSegment.cs
- InfoCardPolicy.cs
- ReceiveMessageRecord.cs
- QueryExpression.cs
- GridPattern.cs
- DbConnectionPoolCounters.cs
- StaticExtension.cs
- NativeMethods.cs
- SessionStateContainer.cs
- AnnotationAdorner.cs
- Enum.cs
- DrawingVisual.cs
- Block.cs
- FileDetails.cs
- ConnectionsZone.cs
- CreateUserWizardStep.cs
- RegexTypeEditor.cs
- TrustLevelCollection.cs
- HasCopySemanticsAttribute.cs
- CurrentChangingEventArgs.cs
- MessageQueueEnumerator.cs
- PersonalizationStateInfo.cs
- IndependentAnimationStorage.cs
- MatrixValueSerializer.cs
- ImageCodecInfoPrivate.cs
- ArrangedElementCollection.cs
- ClassHandlersStore.cs
- DataBinding.cs
- PositiveTimeSpanValidator.cs
- SequentialWorkflowRootDesigner.cs
- ClientSettingsSection.cs
- CustomErrorsSection.cs
- TCPListener.cs
- ConfigViewGenerator.cs
- DictionarySectionHandler.cs
- documentsequencetextview.cs
- httpapplicationstate.cs
- X509RawDataKeyIdentifierClause.cs
- StylusPlugin.cs
- Size3DConverter.cs
- CorrelationService.cs
- DesignerHost.cs
- ComplexTypeEmitter.cs
- Evaluator.cs
- MSAAEventDispatcher.cs
- CodeSnippetCompileUnit.cs
- BinaryWriter.cs
- ServiceMemoryGates.cs
- SlipBehavior.cs
- CodeDomLocalizationProvider.cs
- TypeSemantics.cs
- BinarySerializer.cs
- PluggableProtocol.cs
- SmiEventSink.cs
- WindowsPrincipal.cs
- SqlDataSource.cs
- OuterGlowBitmapEffect.cs
- ListControl.cs
- NamespaceCollection.cs
- QilPatternFactory.cs
- DataGridViewRowPostPaintEventArgs.cs
- RewritingValidator.cs
- FunctionQuery.cs
- Decorator.cs
- SafeEventHandle.cs
- TemplateControlCodeDomTreeGenerator.cs
- Random.cs
- RoleManagerSection.cs
- ComIntegrationManifestGenerator.cs
- PenThreadPool.cs
- EntityModelBuildProvider.cs
- InternalControlCollection.cs
- SafeNativeMethodsMilCoreApi.cs
- AutomationPropertyInfo.cs
- WorkBatch.cs
- EntityContainerEmitter.cs
- ListViewUpdateEventArgs.cs
- documentsequencetextview.cs
- BitmapEditor.cs
- SecurityHelper.cs
- ComponentResourceKeyConverter.cs
- PeerApplication.cs
- TransformGroup.cs
- DynamicMethod.cs
- ManipulationLogic.cs
- DesignTimeTemplateParser.cs
- TraceFilter.cs
- ZipIORawDataFileBlock.cs