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
- CounterSet.cs
- IndicFontClient.cs
- DataRow.cs
- AttributeEmitter.cs
- EntitySqlQueryCacheKey.cs
- ClientSponsor.cs
- BaseAsyncResult.cs
- ChangesetResponse.cs
- EventListenerClientSide.cs
- TdsParserSessionPool.cs
- XmlElementCollection.cs
- ByteStream.cs
- StretchValidation.cs
- IOException.cs
- Html32TextWriter.cs
- DataGridViewCellCancelEventArgs.cs
- SystemResourceKey.cs
- FontFamilyIdentifier.cs
- ThreadStartException.cs
- MemoryFailPoint.cs
- UdpDiscoveryEndpointProvider.cs
- SamlAdvice.cs
- MailWriter.cs
- StylusPlugInCollection.cs
- ImmutableAssemblyCacheEntry.cs
- PreviewKeyDownEventArgs.cs
- RepeatButton.cs
- SoapElementAttribute.cs
- MetadataItemEmitter.cs
- DetailsViewInsertEventArgs.cs
- BamlLocalizer.cs
- ServiceOperationHelpers.cs
- FontDialog.cs
- ListViewItem.cs
- AuthorizationRule.cs
- SystemIPGlobalProperties.cs
- COM2ColorConverter.cs
- IISMapPath.cs
- PublisherIdentityPermission.cs
- TraceSwitch.cs
- XmlCharType.cs
- TransactionException.cs
- BinaryCommonClasses.cs
- PrimitiveXmlSerializers.cs
- QilList.cs
- SafeThreadHandle.cs
- HtmlAnchor.cs
- RowsCopiedEventArgs.cs
- HttpWriter.cs
- Multiply.cs
- FileEnumerator.cs
- base64Transforms.cs
- FontStyleConverter.cs
- GridViewItemAutomationPeer.cs
- HttpHandlersSection.cs
- StringFunctions.cs
- OpCodes.cs
- ThemeDictionaryExtension.cs
- HyperLinkDataBindingHandler.cs
- SoapTransportImporter.cs
- DesignOnlyAttribute.cs
- ParseHttpDate.cs
- BinHexEncoder.cs
- PhysicalFontFamily.cs
- EndpointReference.cs
- XmlWrappingReader.cs
- ToolboxComponentsCreatingEventArgs.cs
- TextServicesPropertyRanges.cs
- WebPartConnectionCollection.cs
- Serializer.cs
- WorkflowRuntimeEndpoint.cs
- Sql8ExpressionRewriter.cs
- OdbcInfoMessageEvent.cs
- SqlCommandBuilder.cs
- ToolStripItemImageRenderEventArgs.cs
- ScaleTransform3D.cs
- WindowsSysHeader.cs
- DataList.cs
- DbConnectionFactory.cs
- NetTcpBinding.cs
- QilBinary.cs
- DnsPermission.cs
- ServiceObjectContainer.cs
- ConfigurationPermission.cs
- CallbackHandler.cs
- NullableConverter.cs
- XmlSchemaRedefine.cs
- SplineKeyFrames.cs
- DesignOnlyAttribute.cs
- StreamInfo.cs
- BasicBrowserDialog.designer.cs
- XmlDataCollection.cs
- SplineKeyFrames.cs
- KnownTypesProvider.cs
- COM2PropertyBuilderUITypeEditor.cs
- SmtpFailedRecipientsException.cs
- CodePrimitiveExpression.cs
- ResourceExpressionEditorSheet.cs
- ConstraintConverter.cs
- CodePageUtils.cs