Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / IdentityModel / System / IdentityModel / CanonicalizationDriver.cs / 1 / 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. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- MetadataUtilsSmi.cs
- autovalidator.cs
- xdrvalidator.cs
- TreeViewAutomationPeer.cs
- RenderingEventArgs.cs
- NotificationContext.cs
- PageSetupDialog.cs
- MarginCollapsingState.cs
- TypeDelegator.cs
- OdbcConnectionFactory.cs
- PipelineModuleStepContainer.cs
- StatusBarItemAutomationPeer.cs
- StreamGeometryContext.cs
- DecoderExceptionFallback.cs
- ListManagerBindingsCollection.cs
- DLinqDataModelProvider.cs
- RemotingConfiguration.cs
- Thread.cs
- FrameAutomationPeer.cs
- GeneratedView.cs
- StylusPointPropertyUnit.cs
- DataSourceControlBuilder.cs
- TextAdaptor.cs
- AnnotationAuthorChangedEventArgs.cs
- BitmapSource.cs
- UserNamePasswordValidator.cs
- NamespaceDecl.cs
- ApplicationInfo.cs
- ProfileGroupSettingsCollection.cs
- ImageButton.cs
- XmlSchemaElement.cs
- BodyGlyph.cs
- SafeEventLogWriteHandle.cs
- cookiecontainer.cs
- InputDevice.cs
- PersistNameAttribute.cs
- ControlBindingsCollection.cs
- VisualCollection.cs
- BoundPropertyEntry.cs
- Geometry.cs
- StringReader.cs
- QueryableFilterUserControl.cs
- ToolStripOverflowButton.cs
- ButtonRenderer.cs
- ILGenerator.cs
- DynamicObject.cs
- Normalization.cs
- ItemType.cs
- RowSpanVector.cs
- MultipartIdentifier.cs
- HttpProfileGroupBase.cs
- RegistryKey.cs
- TextControl.cs
- DoubleKeyFrameCollection.cs
- ExtensionWindow.cs
- ControlSerializer.cs
- RegexRunner.cs
- XpsS0ValidatingLoader.cs
- ContainerTracking.cs
- OdbcReferenceCollection.cs
- EventLogConfiguration.cs
- ConstructorArgumentAttribute.cs
- DecimalAnimation.cs
- EncodingNLS.cs
- XmlSchemaComplexContentRestriction.cs
- JsonQueryStringConverter.cs
- MimeTextImporter.cs
- VectorConverter.cs
- UriParserTemplates.cs
- DataPagerCommandEventArgs.cs
- CalculatedColumn.cs
- TypeDependencyAttribute.cs
- CssTextWriter.cs
- WindowsAuthenticationModule.cs
- ContactManager.cs
- HMACSHA256.cs
- WebConfigurationHost.cs
- Context.cs
- DictionarySectionHandler.cs
- ComplexTypeEmitter.cs
- ObjectParameterCollection.cs
- CommentGlyph.cs
- SqlGatherProducedAliases.cs
- DocumentReferenceCollection.cs
- RowBinding.cs
- SafeMarshalContext.cs
- TemplateBindingExpressionConverter.cs
- UshortList2.cs
- lengthconverter.cs
- DaylightTime.cs
- GeometryHitTestParameters.cs
- BinarySerializer.cs
- DataSourceControl.cs
- GeneralTransform.cs
- ObjectItemAttributeAssemblyLoader.cs
- FileChangesMonitor.cs
- ClipboardProcessor.cs
- WindowsStartMenu.cs
- HierarchicalDataBoundControlAdapter.cs
- IxmlLineInfo.cs