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
- IDQuery.cs
- DataGridViewToolTip.cs
- FixedHighlight.cs
- SettingsPropertyWrongTypeException.cs
- InputBinding.cs
- HtmlHead.cs
- JsonObjectDataContract.cs
- BuildProviderAppliesToAttribute.cs
- ObjectStorage.cs
- SingleAnimationBase.cs
- PersistChildrenAttribute.cs
- MetricEntry.cs
- WebPartHeaderCloseVerb.cs
- NamespaceList.cs
- UnknownWrapper.cs
- FrameworkContentElementAutomationPeer.cs
- DocumentPageView.cs
- XPathParser.cs
- QueryRewriter.cs
- SafeNativeMethodsCLR.cs
- LinkLabel.cs
- XmlILIndex.cs
- OledbConnectionStringbuilder.cs
- CellLabel.cs
- OverlappedAsyncResult.cs
- StyleSheetComponentEditor.cs
- EntityWithChangeTrackerStrategy.cs
- Function.cs
- CodeTypeReferenceExpression.cs
- sitestring.cs
- PassportAuthenticationModule.cs
- FlowDocumentReader.cs
- HatchBrush.cs
- EraserBehavior.cs
- SafeThreadHandle.cs
- QilStrConcat.cs
- AssemblyBuilder.cs
- SqlFlattener.cs
- NullableConverter.cs
- EncodingInfo.cs
- XamlTemplateSerializer.cs
- EDesignUtil.cs
- DbModificationCommandTree.cs
- XmlSchema.cs
- MeasurementDCInfo.cs
- Executor.cs
- RemotingClientProxy.cs
- SerializerWriterEventHandlers.cs
- XmlCompatibilityReader.cs
- Switch.cs
- TabControlEvent.cs
- QuadraticBezierSegment.cs
- EmptyQuery.cs
- BlockingCollection.cs
- XmlReturnReader.cs
- SQLBytesStorage.cs
- XmlElementCollection.cs
- LocalizedNameDescriptionPair.cs
- SqlDataReaderSmi.cs
- ObjectFactoryCodeDomTreeGenerator.cs
- PersonalizationEntry.cs
- BitmapSource.cs
- ProofTokenCryptoHandle.cs
- HttpChannelFactory.cs
- BitmapEffectInput.cs
- TypeFieldSchema.cs
- GrammarBuilderDictation.cs
- RectAnimation.cs
- BehaviorEditorPart.cs
- ForeignKeyConstraint.cs
- WebResourceAttribute.cs
- DataTableReaderListener.cs
- EditorPart.cs
- FieldToken.cs
- PartBasedPackageProperties.cs
- TableStyle.cs
- XmlTypeAttribute.cs
- HtmlTernaryTree.cs
- CmsUtils.cs
- DynamicILGenerator.cs
- Error.cs
- brushes.cs
- Page.cs
- TreeNodeEventArgs.cs
- KeyNotFoundException.cs
- DataSourceConverter.cs
- FlowDocumentPageViewerAutomationPeer.cs
- Predicate.cs
- RangeBaseAutomationPeer.cs
- SoapInteropTypes.cs
- NodeFunctions.cs
- TemplateContentLoader.cs
- HandlerWithFactory.cs
- ProcessThread.cs
- CompositeActivityValidator.cs
- NumericPagerField.cs
- NameSpaceExtractor.cs
- MembershipUser.cs
- WebPartCloseVerb.cs
- WebReferenceCollection.cs