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
- ResourcesGenerator.cs
- X509Chain.cs
- PreservationFileWriter.cs
- ImageListStreamer.cs
- XmlILOptimizerVisitor.cs
- WebPartsPersonalization.cs
- Relationship.cs
- DataSetFieldSchema.cs
- SQLSingle.cs
- WindowsEditBoxRange.cs
- HandlerFactoryWrapper.cs
- DragDeltaEventArgs.cs
- ComponentGuaranteesAttribute.cs
- CompareInfo.cs
- CodeStatement.cs
- DbModificationClause.cs
- File.cs
- GPPOINTF.cs
- sqlstateclientmanager.cs
- ColumnResult.cs
- WebConfigurationHost.cs
- PenCursorManager.cs
- DbLambda.cs
- Rotation3DAnimationUsingKeyFrames.cs
- RuleInfoComparer.cs
- PersonalizationState.cs
- HandleCollector.cs
- _SslStream.cs
- DetailsViewAutoFormat.cs
- TokenCreationParameter.cs
- WindowsTokenRoleProvider.cs
- RichTextBoxConstants.cs
- FixedSOMTableCell.cs
- PeerUnsafeNativeMethods.cs
- ExitEventArgs.cs
- OrderByExpression.cs
- ConditionCollection.cs
- IconBitmapDecoder.cs
- input.cs
- RefreshEventArgs.cs
- DataChangedEventManager.cs
- WpfKnownTypeInvoker.cs
- WindowsListViewItem.cs
- ResourceSetExpression.cs
- XmlAggregates.cs
- EnumConverter.cs
- TreeNodeStyleCollection.cs
- AdapterDictionary.cs
- DesignerLoader.cs
- CommunicationObjectAbortedException.cs
- QueryServiceConfigHandle.cs
- VectorCollectionConverter.cs
- XPathMessageContext.cs
- NetTcpBindingCollectionElement.cs
- SafeNativeMemoryHandle.cs
- DataGridViewCellStateChangedEventArgs.cs
- SystemWebExtensionsSectionGroup.cs
- ValidationEventArgs.cs
- BamlRecordHelper.cs
- DbConnectionPoolOptions.cs
- Psha1DerivedKeyGeneratorHelper.cs
- ClickablePoint.cs
- TableParaClient.cs
- IntMinMaxAggregationOperator.cs
- ScrollBarRenderer.cs
- MessageBox.cs
- EditorPartCollection.cs
- StateDesigner.cs
- FrameworkContentElement.cs
- GridViewRowEventArgs.cs
- ModulesEntry.cs
- ProxyAttribute.cs
- SuppressMessageAttribute.cs
- RegionIterator.cs
- SHA1.cs
- XmlValidatingReaderImpl.cs
- HtmlProps.cs
- ListViewCommandEventArgs.cs
- Track.cs
- WindowsListViewSubItem.cs
- ContentTypeSettingClientMessageFormatter.cs
- ObjectItemCollection.cs
- DetailsViewUpdatedEventArgs.cs
- PaintValueEventArgs.cs
- ToolStripProgressBar.cs
- ToolStripButton.cs
- TdsRecordBufferSetter.cs
- Int32AnimationUsingKeyFrames.cs
- ToolStripSplitButton.cs
- SHA384.cs
- WebGetAttribute.cs
- BreakSafeBase.cs
- BeginEvent.cs
- DataMemberConverter.cs
- BamlRecordHelper.cs
- NamespaceList.cs
- ActionMismatchAddressingException.cs
- PtsCache.cs
- EntityDataSourceSelectingEventArgs.cs
- XmlSchemaException.cs