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
- ServiceOperationDetailViewControl.cs
- InvalidDataException.cs
- SqlXmlStorage.cs
- PreservationFileReader.cs
- PropertyGrid.cs
- AssemblyInfo.cs
- NavigatorInvalidBodyAccessException.cs
- MeshGeometry3D.cs
- WebPartVerb.cs
- SingleObjectCollection.cs
- NameObjectCollectionBase.cs
- HttpModuleCollection.cs
- HttpStreamXmlDictionaryReader.cs
- LocatorGroup.cs
- SafeArrayRankMismatchException.cs
- JoinTreeNode.cs
- UserControlBuildProvider.cs
- OracleParameterCollection.cs
- BinaryMethodMessage.cs
- BasePattern.cs
- TraceLog.cs
- SoapObjectReader.cs
- StrokeRenderer.cs
- SecurityPermission.cs
- TypeSystem.cs
- WebPartPersonalization.cs
- UserControlAutomationPeer.cs
- XPathMessageContext.cs
- TranslateTransform3D.cs
- SamlAssertionKeyIdentifierClause.cs
- EllipseGeometry.cs
- TaskForm.cs
- HttpModule.cs
- TextTrailingWordEllipsis.cs
- ManualResetEventSlim.cs
- ProcessProtocolHandler.cs
- DynamicRenderer.cs
- Group.cs
- DataMemberAttribute.cs
- CannotUnloadAppDomainException.cs
- UnhandledExceptionEventArgs.cs
- HttpStreamMessageEncoderFactory.cs
- TypeConvertions.cs
- WebPartDisplayModeEventArgs.cs
- DeferredElementTreeState.cs
- DataObjectCopyingEventArgs.cs
- MenuItemBindingCollection.cs
- activationcontext.cs
- Encoding.cs
- UiaCoreProviderApi.cs
- CollectionChangedEventManager.cs
- CompositeKey.cs
- ContextStack.cs
- _BasicClient.cs
- ObjectListCommandCollection.cs
- StackSpiller.cs
- GPPOINTF.cs
- OpenCollectionAsyncResult.cs
- DataGridViewRow.cs
- Util.cs
- HotCommands.cs
- ZoneButton.cs
- HyperLink.cs
- SuppressIldasmAttribute.cs
- PasswordBox.cs
- QuaternionAnimation.cs
- XmlSchemaComplexContent.cs
- HtmlHistory.cs
- SystemIPInterfaceProperties.cs
- SingleConverter.cs
- EntityDataSourceColumn.cs
- ConfigXmlSignificantWhitespace.cs
- ReaderOutput.cs
- InfoCardMasterKey.cs
- TableCell.cs
- TableParagraph.cs
- PackageRelationshipSelector.cs
- InputProviderSite.cs
- LabelAutomationPeer.cs
- LicenseContext.cs
- UpWmlMobileTextWriter.cs
- WebPartHelpVerb.cs
- PointAnimationUsingKeyFrames.cs
- QilPatternVisitor.cs
- ParameterModifier.cs
- SspiSecurityTokenParameters.cs
- ConnectionModeReader.cs
- FolderNameEditor.cs
- ContainerTracking.cs
- COSERVERINFO.cs
- ContentPresenter.cs
- SqlFactory.cs
- AspNetCompatibilityRequirementsAttribute.cs
- DataGridViewCell.cs
- KeyedHashAlgorithm.cs
- EnvelopedPkcs7.cs
- AffineTransform3D.cs
- DaylightTime.cs
- ConfigurationManager.cs
- Calendar.cs