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
- ComboBox.cs
- Validator.cs
- MatrixConverter.cs
- TimeoutException.cs
- AuthStoreRoleProvider.cs
- StyleCollection.cs
- CorePropertiesFilter.cs
- diagnosticsswitches.cs
- OutputCacheProfileCollection.cs
- RadialGradientBrush.cs
- UserControl.cs
- ExpressionWriter.cs
- CommaDelimitedStringAttributeCollectionConverter.cs
- MultipleCopiesCollection.cs
- VersionedStream.cs
- CreateCardRequest.cs
- Evidence.cs
- ArrayList.cs
- AuthenticationModuleElementCollection.cs
- Formatter.cs
- SQLMoney.cs
- EntityProviderFactory.cs
- _DomainName.cs
- WorkflowMarkupElementEventArgs.cs
- RestHandlerFactory.cs
- PartDesigner.cs
- WindowsPrincipal.cs
- HttpHandlersSection.cs
- BinaryObjectWriter.cs
- ListDictionary.cs
- ProfilePropertyNameValidator.cs
- SystemIPAddressInformation.cs
- CodeComment.cs
- ObjectStateEntryDbDataRecord.cs
- TrailingSpaceComparer.cs
- ExpressionEditorAttribute.cs
- SerialPort.cs
- URLIdentityPermission.cs
- NotifyInputEventArgs.cs
- indexingfiltermarshaler.cs
- CompilationPass2TaskInternal.cs
- FormattedTextSymbols.cs
- WebPartConnectionsConnectVerb.cs
- HitTestWithGeometryDrawingContextWalker.cs
- WorkflowInvoker.cs
- AutoGeneratedField.cs
- Matrix3D.cs
- BaseParser.cs
- LinqDataSourceContextEventArgs.cs
- ObjectSpanRewriter.cs
- DataBinder.cs
- SEHException.cs
- ListenerConstants.cs
- Update.cs
- DictionaryItemsCollection.cs
- ManagementPath.cs
- Vector3DValueSerializer.cs
- WindowsEditBoxRange.cs
- CustomTrackingRecord.cs
- PropertyPathWorker.cs
- DataGridViewSelectedCellCollection.cs
- ProtocolsConfigurationEntry.cs
- __Filters.cs
- BamlTreeMap.cs
- TCPListener.cs
- ContainerControlDesigner.cs
- ErrorWrapper.cs
- PrePrepareMethodAttribute.cs
- WindowsProgressbar.cs
- ImageSourceValueSerializer.cs
- designeractionlistschangedeventargs.cs
- _IPv4Address.cs
- XmlNullResolver.cs
- mda.cs
- SerialPort.cs
- IRCollection.cs
- CqlGenerator.cs
- DataGridAddNewRow.cs
- ChannelDispatcher.cs
- FlowPosition.cs
- SocketException.cs
- HttpCapabilitiesEvaluator.cs
- MatrixAnimationBase.cs
- MultipleViewPatternIdentifiers.cs
- DelegateArgumentValue.cs
- Monitor.cs
- ExceptionUtil.cs
- Calendar.cs
- WriteStateInfoBase.cs
- SpellerHighlightLayer.cs
- BamlWriter.cs
- RectangleGeometry.cs
- SqlGatherConsumedAliases.cs
- Panel.cs
- ContextProperty.cs
- DbConnectionOptions.cs
- InvokeWebServiceDesigner.cs
- DateTimeStorage.cs
- LineProperties.cs
- SettingsPropertyValue.cs