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
- LostFocusEventManager.cs
- GeneralTransform.cs
- MonitoringDescriptionAttribute.cs
- EdmItemError.cs
- Win32Native.cs
- QueryStringParameter.cs
- HMACSHA384.cs
- DataGridViewCellStyleConverter.cs
- RedirectionProxy.cs
- UrlAuthorizationModule.cs
- unitconverter.cs
- UTF7Encoding.cs
- ChangePasswordDesigner.cs
- EditingMode.cs
- DataGridViewRowCollection.cs
- SqlWebEventProvider.cs
- SponsorHelper.cs
- ProjectionPathSegment.cs
- XmlValidatingReader.cs
- Size.cs
- ValidatingPropertiesEventArgs.cs
- MatcherBuilder.cs
- isolationinterop.cs
- ContainerUIElement3D.cs
- PersonalizationStateQuery.cs
- WebConfigManager.cs
- BindableTemplateBuilder.cs
- OutOfMemoryException.cs
- ConfigXmlDocument.cs
- AppDomainFactory.cs
- AutomationProperty.cs
- _AutoWebProxyScriptEngine.cs
- TableMethodGenerator.cs
- commandenforcer.cs
- SoapFault.cs
- StringDictionaryWithComparer.cs
- FontFamily.cs
- ToolStripDropDownItemDesigner.cs
- RegexRunnerFactory.cs
- FixedSOMPageElement.cs
- ToolStripGripRenderEventArgs.cs
- AutomationPropertyInfo.cs
- Validator.cs
- SQLStringStorage.cs
- BaseDataList.cs
- UpnEndpointIdentityExtension.cs
- CalendarTable.cs
- ProtocolReflector.cs
- Emitter.cs
- DataObjectCopyingEventArgs.cs
- ActivationProxy.cs
- PrintingPermissionAttribute.cs
- StringAnimationUsingKeyFrames.cs
- CreateUserWizard.cs
- SizeChangedInfo.cs
- GenericTypeParameterBuilder.cs
- AuthenticationModuleElementCollection.cs
- PermissionSetEnumerator.cs
- ReflectionTypeLoadException.cs
- TrackingMemoryStream.cs
- CheckBoxPopupAdapter.cs
- ComponentManagerBroker.cs
- HashSetEqualityComparer.cs
- AssemblyResourceLoader.cs
- DBConnection.cs
- IconBitmapDecoder.cs
- StylusPointPropertyId.cs
- ActiveXHelper.cs
- WindowPatternIdentifiers.cs
- LocalTransaction.cs
- SerializationObjectManager.cs
- DataGridViewCellConverter.cs
- StringToken.cs
- SessionEndingCancelEventArgs.cs
- PersonalizationEntry.cs
- TransactionTable.cs
- Base64Encoding.cs
- InheritedPropertyChangedEventArgs.cs
- SafeEventLogWriteHandle.cs
- RadioButtonRenderer.cs
- RepeatButton.cs
- CaseDesigner.xaml.cs
- TransactionException.cs
- WsdlParser.cs
- DSGeneratorProblem.cs
- SuppressMergeCheckAttribute.cs
- PageAction.cs
- ParameterCollection.cs
- QueryStringHandler.cs
- ObjectItemCollectionAssemblyCacheEntry.cs
- SiteOfOriginPart.cs
- Psha1DerivedKeyGenerator.cs
- CellParaClient.cs
- StringCollection.cs
- ThicknessKeyFrameCollection.cs
- LocalIdCollection.cs
- OletxCommittableTransaction.cs
- HitTestFilterBehavior.cs
- CapabilitiesAssignment.cs
- DbConnectionClosed.cs