Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / IdentityModel / System / IdentityModel / CanonicalizationDriver.cs / 1 / 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ClickablePoint.cs
- AppDomainProtocolHandler.cs
- SymDocumentType.cs
- MouseGestureValueSerializer.cs
- XamlFrame.cs
- Dynamic.cs
- SelectingProviderEventArgs.cs
- WebColorConverter.cs
- ControlPaint.cs
- AsymmetricSignatureFormatter.cs
- ResourceWriter.cs
- LinqToSqlWrapper.cs
- DoubleLink.cs
- PrinterSettings.cs
- DbExpressionVisitor_TResultType.cs
- SchemaUtility.cs
- ElementsClipboardData.cs
- XmlSchemaObjectTable.cs
- StringFreezingAttribute.cs
- selecteditemcollection.cs
- UnitControl.cs
- UserControlDocumentDesigner.cs
- RoleManagerEventArgs.cs
- WebPartRestoreVerb.cs
- WinEventWrap.cs
- DefaultAsyncDataDispatcher.cs
- MenuItem.cs
- DropDownHolder.cs
- ScaleTransform.cs
- CannotUnloadAppDomainException.cs
- CodeTypeConstructor.cs
- DataGridViewTopLeftHeaderCell.cs
- ObjectViewQueryResultData.cs
- GifBitmapEncoder.cs
- BStrWrapper.cs
- SqlServer2KCompatibilityAnnotation.cs
- ListControlDataBindingHandler.cs
- CompoundFileStreamReference.cs
- DataBindingHandlerAttribute.cs
- DataServiceQueryOfT.cs
- ApplicationServiceHelper.cs
- COAUTHINFO.cs
- FullTextLine.cs
- AnnotationHighlightLayer.cs
- QueryOptionExpression.cs
- HintTextConverter.cs
- LockedAssemblyCache.cs
- LayoutExceptionEventArgs.cs
- RenderOptions.cs
- SqlDataSourceCommandEventArgs.cs
- DataSourceSelectArguments.cs
- ReachPrintTicketSerializerAsync.cs
- ValueTypeIndexerReference.cs
- X509SecurityToken.cs
- ComponentCodeDomSerializer.cs
- XDRSchema.cs
- TextTreeUndoUnit.cs
- precedingquery.cs
- HandledMouseEvent.cs
- DbgUtil.cs
- RelationHandler.cs
- StructuredTypeEmitter.cs
- RightsManagementInformation.cs
- PriorityBinding.cs
- IISUnsafeMethods.cs
- InputBuffer.cs
- ViewCellSlot.cs
- XmlQueryType.cs
- XamlToRtfParser.cs
- BuildProvidersCompiler.cs
- ColumnReorderedEventArgs.cs
- ServiceModelActivity.cs
- DataBoundLiteralControl.cs
- Socket.cs
- ActivationService.cs
- ColorAnimationBase.cs
- CodeRemoveEventStatement.cs
- TypeSemantics.cs
- KnownBoxes.cs
- AvTrace.cs
- ColorBlend.cs
- QueryHandler.cs
- SystemBrushes.cs
- PolygonHotSpot.cs
- XmlSchemaAppInfo.cs
- OutputCacheSettings.cs
- SqlRemoveConstantOrderBy.cs
- XhtmlBasicFormAdapter.cs
- LockCookie.cs
- ProtocolsConfigurationHandler.cs
- SpecularMaterial.cs
- CacheChildrenQuery.cs
- AdornerHitTestResult.cs
- HtmlTable.cs
- DataGridSortCommandEventArgs.cs
- ContentDesigner.cs
- DesignTimeTemplateParser.cs
- DesignerForm.cs
- AnnotationResource.cs
- XmlSchemaAttributeGroupRef.cs