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
- SqlNodeAnnotation.cs
- GeneratedContractType.cs
- TimerExtension.cs
- RegexEditorDialog.cs
- IsolatedStorageFileStream.cs
- elementinformation.cs
- DataGridItemEventArgs.cs
- WebPartEditVerb.cs
- SqlUdtInfo.cs
- DataServiceSaveChangesEventArgs.cs
- PagerStyle.cs
- ListItemCollection.cs
- Convert.cs
- CookielessHelper.cs
- ModelTreeEnumerator.cs
- TypeInfo.cs
- EncryptedData.cs
- Matrix.cs
- PropertyPath.cs
- DateTimeAutomationPeer.cs
- ChtmlTextWriter.cs
- DBSchemaTable.cs
- MatrixIndependentAnimationStorage.cs
- HtmlInputSubmit.cs
- SearchForVirtualItemEventArgs.cs
- Hyperlink.cs
- MDIClient.cs
- DefaultShape.cs
- Rfc2898DeriveBytes.cs
- SqlException.cs
- D3DImage.cs
- GeneralTransformCollection.cs
- WizardStepBase.cs
- CharacterBuffer.cs
- PartitionResolver.cs
- MimeObjectFactory.cs
- UpDownEvent.cs
- IArgumentProvider.cs
- SystemBrushes.cs
- DbParameterCollectionHelper.cs
- ContentPlaceHolder.cs
- StylusTip.cs
- SamlAttribute.cs
- ConfigurationFileMap.cs
- ColorConverter.cs
- ProjectedSlot.cs
- Rotation3D.cs
- CookieParameter.cs
- HttpDigestClientElement.cs
- JournalEntryStack.cs
- RichTextBoxConstants.cs
- QueryCursorEventArgs.cs
- SessionParameter.cs
- ValidationHelper.cs
- XmlSchemaComplexContentRestriction.cs
- SqlDataSourceCommandEventArgs.cs
- Matrix.cs
- ConversionContext.cs
- SubpageParagraph.cs
- DeferredSelectedIndexReference.cs
- LinqToSqlWrapper.cs
- Sql8ConformanceChecker.cs
- DataGridViewCellMouseEventArgs.cs
- GridPatternIdentifiers.cs
- XhtmlTextWriter.cs
- CultureInfo.cs
- RegexCode.cs
- HttpRawResponse.cs
- SmtpDigestAuthenticationModule.cs
- EncryptedReference.cs
- QuadraticBezierSegment.cs
- XmlSchemaSimpleContentExtension.cs
- DiscoveryMessageSequence.cs
- TableCellAutomationPeer.cs
- HTTPAPI_VERSION.cs
- ListControl.cs
- TypeInformation.cs
- ElementsClipboardData.cs
- EdmScalarPropertyAttribute.cs
- CellConstant.cs
- DataTableNewRowEvent.cs
- DateTimeFormatInfo.cs
- ControlPropertyNameConverter.cs
- InOutArgumentConverter.cs
- CompilationSection.cs
- Literal.cs
- TextSpan.cs
- CompilerTypeWithParams.cs
- DoubleLinkList.cs
- SettingsProperty.cs
- CreatingCookieEventArgs.cs
- PathBox.cs
- ReflectPropertyDescriptor.cs
- PermissionListSet.cs
- TypeNameParser.cs
- ExpressionVisitor.cs
- LogRecordSequence.cs
- Rect3DValueSerializer.cs
- SchemaElement.cs
- NetCodeGroup.cs