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
- XmlSchemaCollection.cs
- CollectionViewProxy.cs
- ConfigsHelper.cs
- InteropAutomationProvider.cs
- TextSelectionProcessor.cs
- ExceptionHandlers.cs
- ObjectDataSource.cs
- ObjectViewQueryResultData.cs
- RoleManagerModule.cs
- EmbeddedMailObjectCollectionEditor.cs
- DirectoryInfo.cs
- BrowserInteropHelper.cs
- WebPartEditorApplyVerb.cs
- String.cs
- QueryCacheManager.cs
- CurrentChangingEventArgs.cs
- XmlnsCache.cs
- TextTreeText.cs
- ListViewItemSelectionChangedEvent.cs
- HttpListenerContext.cs
- Formatter.cs
- InteropAutomationProvider.cs
- XhtmlBasicPhoneCallAdapter.cs
- ParenthesizePropertyNameAttribute.cs
- GenericXmlSecurityToken.cs
- HtmlDocument.cs
- sitestring.cs
- SqlConnectionString.cs
- TraceUtility.cs
- StickyNoteContentControl.cs
- TdsParameterSetter.cs
- MaterialCollection.cs
- ScaleTransform3D.cs
- DataFormats.cs
- InstanceCollisionException.cs
- BindingCompleteEventArgs.cs
- ObjectViewQueryResultData.cs
- CodeValidator.cs
- EventlogProvider.cs
- ApplicationId.cs
- MaskedTextProvider.cs
- DataDesignUtil.cs
- BitVector32.cs
- Icon.cs
- HttpRequest.cs
- ContainerUtilities.cs
- MobileRedirect.cs
- SqlUserDefinedTypeAttribute.cs
- ContentElement.cs
- UrlMappingsSection.cs
- SqlPersistenceProviderFactory.cs
- NonVisualControlAttribute.cs
- SRDisplayNameAttribute.cs
- Paragraph.cs
- SchemaMerger.cs
- Tile.cs
- XmlSchemaCollection.cs
- DataKey.cs
- FixedPosition.cs
- XmlMembersMapping.cs
- NavigationFailedEventArgs.cs
- TextModifier.cs
- ConsoleCancelEventArgs.cs
- ResizeBehavior.cs
- MULTI_QI.cs
- CqlParserHelpers.cs
- TextServicesContext.cs
- ToolStripContentPanel.cs
- RefreshResponseInfo.cs
- TextRangeEdit.cs
- ThreadAttributes.cs
- _FtpDataStream.cs
- ConsoleEntryPoint.cs
- DataSourceCollectionBase.cs
- PagesChangedEventArgs.cs
- FunctionQuery.cs
- HelpKeywordAttribute.cs
- XamlFxTrace.cs
- DataBindingCollectionConverter.cs
- TreeSet.cs
- TreeViewImageIndexConverter.cs
- ReferenceConverter.cs
- ActionFrame.cs
- SpotLight.cs
- WebPartVerbCollection.cs
- FilePrompt.cs
- RSAPKCS1KeyExchangeFormatter.cs
- WindowProviderWrapper.cs
- XmlBinaryWriter.cs
- MeasurementDCInfo.cs
- JournalNavigationScope.cs
- Expander.cs
- OperationBehaviorAttribute.cs
- XmlName.cs
- AnnotationHighlightLayer.cs
- RegexRunnerFactory.cs
- BitmapImage.cs
- MaskedTextBoxTextEditorDropDown.cs
- HttpRawResponse.cs
- _WinHttpWebProxyDataBuilder.cs