Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / IdentityModel / System / IdentityModel / CanonicalFormWriter.cs / 1 / CanonicalFormWriter.cs
//------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------- namespace System.IdentityModel { using System.IO; using System.Security.Cryptography; using System.Text; using System.Xml; abstract class CanonicalFormWriter { internal static readonly UTF8Encoding Utf8WithoutPreamble = new UTF8Encoding(false); protected static void Base64EncodeAndWrite(Stream stream, byte[] workBuffer, char[] base64WorkBuffer, byte[] data) { if ((data.Length / 3) * 4 + 4 > base64WorkBuffer.Length) { EncodeAndWrite(stream, Convert.ToBase64String(data)); return; } int encodedLength = Convert.ToBase64CharArray(data, 0, data.Length, base64WorkBuffer, 0, Base64FormattingOptions.None); EncodeAndWrite(stream, workBuffer, base64WorkBuffer, encodedLength); } protected static void EncodeAndWrite(Stream stream, byte[] workBuffer, string s) { if (s.Length > workBuffer.Length) { EncodeAndWrite(stream, s); return; } for (int i = 0; i < s.Length; i++) { char c = s[i]; if (c < 127) { workBuffer[i] = (byte) c; } else { EncodeAndWrite(stream, s); return; } } stream.Write(workBuffer, 0, s.Length); } protected static void EncodeAndWrite(Stream stream, byte[] workBuffer, char[] chars) { EncodeAndWrite(stream, workBuffer, chars, chars.Length); } protected static void EncodeAndWrite(Stream stream, byte[] workBuffer, char[] chars, int count) { if (count > workBuffer.Length) { EncodeAndWrite(stream, chars, count); return; } for (int i = 0; i < count; i++) { char c = chars[i]; if (c < 127) { workBuffer[i] = (byte) c; } else { EncodeAndWrite(stream, chars, count); return; } } stream.Write(workBuffer, 0, count); } static void EncodeAndWrite(Stream stream, string s) { byte[] buffer = CanonicalFormWriter.Utf8WithoutPreamble.GetBytes(s); stream.Write(buffer, 0, buffer.Length); } static void EncodeAndWrite(Stream stream, char[] chars, int count) { byte[] buffer = CanonicalFormWriter.Utf8WithoutPreamble.GetBytes(chars, 0, count); stream.Write(buffer, 0, buffer.Length); } } } // 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
- HierarchicalDataBoundControlAdapter.cs
- DefaultAssemblyResolver.cs
- NonPrimarySelectionGlyph.cs
- DatatypeImplementation.cs
- WebSysDefaultValueAttribute.cs
- StyleSelector.cs
- ResourcePart.cs
- Paragraph.cs
- CatalogPart.cs
- ConnectionProviderAttribute.cs
- PropertyChangedEventManager.cs
- RoutedUICommand.cs
- ProgressBar.cs
- Converter.cs
- ZoneLinkButton.cs
- MapPathBasedVirtualPathProvider.cs
- Vector3DKeyFrameCollection.cs
- SqlReferenceCollection.cs
- XamlReaderConstants.cs
- SurrogateSelector.cs
- WebPartTracker.cs
- Enum.cs
- TransactionContextValidator.cs
- NavigatingCancelEventArgs.cs
- SourceFileInfo.cs
- NullExtension.cs
- GridViewRowPresenter.cs
- CollectionViewGroupRoot.cs
- CapabilitiesAssignment.cs
- ClientConvert.cs
- OuterGlowBitmapEffect.cs
- NativeMethods.cs
- FrameworkObject.cs
- ListView.cs
- XmlAttribute.cs
- VariableValue.cs
- GiveFeedbackEventArgs.cs
- Span.cs
- SessionEndedEventArgs.cs
- HostedElements.cs
- CodeMemberMethod.cs
- XPathConvert.cs
- XsdDuration.cs
- ConcurrentBag.cs
- TemplatePartAttribute.cs
- _SSPISessionCache.cs
- SessionStateItemCollection.cs
- Matrix3DValueSerializer.cs
- CodeDomLocalizationProvider.cs
- BindableTemplateBuilder.cs
- RadioButton.cs
- SByteStorage.cs
- ViewBase.cs
- ValidatingPropertiesEventArgs.cs
- DocumentOrderQuery.cs
- ConvertersCollection.cs
- ComAdminWrapper.cs
- TextTreeInsertElementUndoUnit.cs
- BinaryUtilClasses.cs
- InkCanvasInnerCanvas.cs
- ReflectionUtil.cs
- FixedSOMTableRow.cs
- indexingfiltermarshaler.cs
- AuthenticatedStream.cs
- UIElement.cs
- DebuggerAttributes.cs
- LineSegment.cs
- ContextMenu.cs
- DESCryptoServiceProvider.cs
- XmlDataFileEditor.cs
- AutomationPatternInfo.cs
- ChunkedMemoryStream.cs
- XmlBinaryWriterSession.cs
- InputLanguageProfileNotifySink.cs
- WebPartManager.cs
- followingsibling.cs
- Tag.cs
- MultipleViewPattern.cs
- altserialization.cs
- WebPartMenu.cs
- SHA384.cs
- DeclaredTypeValidatorAttribute.cs
- OdbcConnectionString.cs
- TemplateContent.cs
- BStrWrapper.cs
- ColorTranslator.cs
- DataSourceCollectionBase.cs
- SecurityUtils.cs
- HybridDictionary.cs
- FtpWebResponse.cs
- UserInitiatedRoutedEventPermissionAttribute.cs
- AnnotationHelper.cs
- FilteredAttributeCollection.cs
- NavigationWindowAutomationPeer.cs
- TimeEnumHelper.cs
- ObjectCache.cs
- HtmlMeta.cs
- UndoEngine.cs
- UInt64Converter.cs
- FastEncoderStatics.cs