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
- SpeechRecognizer.cs
- DataPagerFieldItem.cs
- String.cs
- ResourceDescriptionAttribute.cs
- Propagator.ExtentPlaceholderCreator.cs
- ProbeMatchesCD1.cs
- MergeFailedEvent.cs
- DBCommand.cs
- XmlNavigatorFilter.cs
- PrintPreviewDialog.cs
- Metadata.cs
- EditorZone.cs
- EncryptedPackage.cs
- BitmapDownload.cs
- WebService.cs
- XsltLoader.cs
- Empty.cs
- InProcStateClientManager.cs
- EntityDataSourceWrapperCollection.cs
- RenderContext.cs
- ScrollViewer.cs
- CorrelationManager.cs
- NameNode.cs
- ReaderWriterLockSlim.cs
- SqlConnectionString.cs
- ComponentResourceKey.cs
- InlinedAggregationOperatorEnumerator.cs
- FrameworkElementFactory.cs
- Models.cs
- NamespaceCollection.cs
- ExpandCollapseProviderWrapper.cs
- SqlClientMetaDataCollectionNames.cs
- ExpressionBuilderContext.cs
- QueryUtil.cs
- IISMapPath.cs
- RenderData.cs
- MonitorWrapper.cs
- PersonalizableTypeEntry.cs
- RotateTransform.cs
- MediaElement.cs
- SvcMapFile.cs
- DetailsViewDeletedEventArgs.cs
- AdornerDecorator.cs
- MessageDesigner.cs
- User.cs
- FileCodeGroup.cs
- DefaultDialogButtons.cs
- WindowHideOrCloseTracker.cs
- HtmlDocument.cs
- DataPointer.cs
- StreamUpdate.cs
- TypeNameConverter.cs
- PersonalizationDictionary.cs
- SelectedDatesCollection.cs
- HtmlInputControl.cs
- Stack.cs
- Root.cs
- TemplateControlBuildProvider.cs
- DataGridViewSelectedCellCollection.cs
- SqlUtils.cs
- NameTable.cs
- ObjectManager.cs
- SqlAliaser.cs
- SessionStateItemCollection.cs
- UnmanagedBitmapWrapper.cs
- XmlMtomWriter.cs
- EmissiveMaterial.cs
- XmlAtomicValue.cs
- Figure.cs
- InvokePattern.cs
- TerminatorSinks.cs
- MouseButtonEventArgs.cs
- CriticalFinalizerObject.cs
- ScalarRestriction.cs
- XmlSiteMapProvider.cs
- IInstanceTable.cs
- BuildProviderUtils.cs
- Columns.cs
- DataGridColumnHeaderCollection.cs
- Calendar.cs
- InternalCache.cs
- ConstructorNeedsTagAttribute.cs
- PrintDocument.cs
- ServiceEndpointElement.cs
- SerializerProvider.cs
- DefaultBinder.cs
- NullRuntimeConfig.cs
- WebBaseEventKeyComparer.cs
- IisHelper.cs
- DataGridColumnHeaderItemAutomationPeer.cs
- FileDialogPermission.cs
- XslTransform.cs
- mediaclock.cs
- MdiWindowListStrip.cs
- TableAdapterManagerHelper.cs
- KeyValuePairs.cs
- DBConcurrencyException.cs
- EventManager.cs
- WebPartAuthorizationEventArgs.cs
- DataServiceContext.cs