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
- DispatcherProcessingDisabled.cs
- XsdDuration.cs
- DesignerView.xaml.cs
- StreamFormatter.cs
- SendKeys.cs
- SqlDataSourceCache.cs
- UnauthorizedWebPart.cs
- SQLInt32Storage.cs
- TypeListConverter.cs
- TextTreeTextNode.cs
- SqlComparer.cs
- ListSortDescription.cs
- SqlMethodAttribute.cs
- ClipboardData.cs
- PartialCachingControl.cs
- XPathNavigatorKeyComparer.cs
- FormParameter.cs
- EditorZoneBase.cs
- BindableTemplateBuilder.cs
- TypeGeneratedEventArgs.cs
- PublishLicense.cs
- FullTrustAssembliesSection.cs
- Bidi.cs
- FormParameter.cs
- XPathNavigatorKeyComparer.cs
- CodeRemoveEventStatement.cs
- PermissionRequestEvidence.cs
- SqlDataSourceCache.cs
- ResourcesChangeInfo.cs
- SignatureResourcePool.cs
- AttachedPropertyMethodSelector.cs
- FragmentNavigationEventArgs.cs
- PackagingUtilities.cs
- ThreadExceptionDialog.cs
- PeerCollaboration.cs
- Rijndael.cs
- CodeDOMUtility.cs
- SrgsElement.cs
- StrokeCollectionDefaultValueFactory.cs
- InkCollectionBehavior.cs
- UnsafeNativeMethods.cs
- GuidTagList.cs
- SponsorHelper.cs
- FontCacheUtil.cs
- RoutedEventValueSerializer.cs
- OutputCacheSettings.cs
- SemanticResultKey.cs
- MailWebEventProvider.cs
- MasterPage.cs
- Pen.cs
- CheckBoxBaseAdapter.cs
- WbemProvider.cs
- SignedPkcs7.cs
- CodeDomSerializationProvider.cs
- SettingsPropertyCollection.cs
- XamlTypeMapperSchemaContext.cs
- FolderBrowserDialogDesigner.cs
- CompressedStack.cs
- SqlDataSourceConfigureSelectPanel.cs
- PerformanceCounterManager.cs
- CollectionChangedEventManager.cs
- AppSettingsExpressionEditor.cs
- CultureInfoConverter.cs
- CodeTypeMember.cs
- TableLayoutSettingsTypeConverter.cs
- Formatter.cs
- AstNode.cs
- TemplateManager.cs
- URL.cs
- NotEqual.cs
- HMACRIPEMD160.cs
- ValidatorCollection.cs
- TextServicesCompartmentEventSink.cs
- LexicalChunk.cs
- InsufficientMemoryException.cs
- ResXFileRef.cs
- VisualStyleElement.cs
- Size3D.cs
- WebPartTransformerCollection.cs
- StringArrayEditor.cs
- TraceProvider.cs
- RequiredFieldValidator.cs
- JournalEntryListConverter.cs
- TransportConfigurationTypeElement.cs
- ClientApiGenerator.cs
- MetadataException.cs
- SettingsPropertyNotFoundException.cs
- ToolStripComboBox.cs
- XmlValueConverter.cs
- WindowsTokenRoleProvider.cs
- ConnectionInterfaceCollection.cs
- RemoteHelper.cs
- MenuRenderer.cs
- CalendarTable.cs
- ByteAnimation.cs
- exports.cs
- DecoderExceptionFallback.cs
- DataRelationPropertyDescriptor.cs
- DataGridSortCommandEventArgs.cs
- SelectionRangeConverter.cs