Code:
/ 4.0 / 4.0 / 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. //------------------------------------------------------------ // 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
![Network programming in C#, Network Programming in VB.NET, Network Programming in .NET](/images/book.jpg)
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- VerificationAttribute.cs
- ValidatedControlConverter.cs
- HwndHostAutomationPeer.cs
- Single.cs
- HtmlShim.cs
- PolyBezierSegment.cs
- MailAddress.cs
- PrintEvent.cs
- AddingNewEventArgs.cs
- XmlNodeChangedEventManager.cs
- PromptBuilder.cs
- TextServicesPropertyRanges.cs
- FactoryGenerator.cs
- CharEntityEncoderFallback.cs
- DesignerAdapterAttribute.cs
- ApplicationServiceHelper.cs
- TextEncodedRawTextWriter.cs
- NativeMethods.cs
- BatchParser.cs
- ClientRolePrincipal.cs
- XPathArrayIterator.cs
- Icon.cs
- EdmFunction.cs
- AttributedMetaModel.cs
- TransformerInfo.cs
- SqlStream.cs
- SerialPinChanges.cs
- ThicknessKeyFrameCollection.cs
- Msec.cs
- Wizard.cs
- ResolvedKeyFrameEntry.cs
- X509AsymmetricSecurityKey.cs
- OrderedDictionaryStateHelper.cs
- DateTimeSerializationSection.cs
- ResourcePermissionBaseEntry.cs
- DriveInfo.cs
- TheQuery.cs
- TextEffectCollection.cs
- _LocalDataStoreMgr.cs
- DefaultValueConverter.cs
- Span.cs
- KnownIds.cs
- VariableDesigner.xaml.cs
- ContentElement.cs
- FloaterBaseParaClient.cs
- GroupBox.cs
- controlskin.cs
- ScriptResourceHandler.cs
- AnnotationObservableCollection.cs
- KeyboardNavigation.cs
- AspNetHostingPermission.cs
- StylusPointPropertyInfo.cs
- SqlBinder.cs
- RuntimeConfig.cs
- LeaseManager.cs
- ConfigurationStrings.cs
- Executor.cs
- BaseValidatorDesigner.cs
- TrustSection.cs
- WmiPutTraceRecord.cs
- InternalPermissions.cs
- OptionUsage.cs
- SessionEndedEventArgs.cs
- RangeValidator.cs
- ProvidePropertyAttribute.cs
- AuthenticationManager.cs
- FileRecordSequence.cs
- ClientCredentialsElement.cs
- Axis.cs
- CacheMode.cs
- BindingWorker.cs
- HelpInfo.cs
- HttpResponse.cs
- RelationshipType.cs
- NetTcpBinding.cs
- SafeNativeMethodsCLR.cs
- Size3D.cs
- UnsafeNativeMethods.cs
- GridItem.cs
- UtilityExtension.cs
- ToolboxItem.cs
- HtmlPhoneCallAdapter.cs
- TdsValueSetter.cs
- CatalogZoneBase.cs
- DataRelationPropertyDescriptor.cs
- DSASignatureFormatter.cs
- CustomAttribute.cs
- SemaphoreFullException.cs
- PerformanceCounterPermissionEntryCollection.cs
- OleDbDataAdapter.cs
- AmbientLight.cs
- DashStyles.cs
- RequiredAttributeAttribute.cs
- ObjectDataProvider.cs
- CheckoutException.cs
- SqlConnectionHelper.cs
- FrameworkElement.cs
- ErrorFormatterPage.cs
- WsdlInspector.cs
- JavascriptCallbackResponseProperty.cs