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
- DesignerOptionService.cs
- BooleanExpr.cs
- _RequestCacheProtocol.cs
- LinkButton.cs
- DataColumnMapping.cs
- Control.cs
- MetadataItem_Static.cs
- StorageComplexTypeMapping.cs
- _UncName.cs
- coordinatorfactory.cs
- PropertyIDSet.cs
- ACL.cs
- ReferenceEqualityComparer.cs
- TextRange.cs
- MdbDataFileEditor.cs
- SHA512Managed.cs
- SmiEventStream.cs
- RoleManagerSection.cs
- FormatConvertedBitmap.cs
- Psha1DerivedKeyGeneratorHelper.cs
- CodeTypeMemberCollection.cs
- ColorAnimation.cs
- RightsManagementInformation.cs
- FixedStringLookup.cs
- ClipboardProcessor.cs
- ISAPIWorkerRequest.cs
- BitmapInitialize.cs
- BaseEntityWrapper.cs
- ObjectStorage.cs
- LineMetrics.cs
- KnownBoxes.cs
- X500Name.cs
- WindowsFormsLinkLabel.cs
- DropDownButton.cs
- ScriptingJsonSerializationSection.cs
- CachedPathData.cs
- VariantWrapper.cs
- ObjectStateFormatter.cs
- remotingproxy.cs
- DateTimeOffset.cs
- OleDbTransaction.cs
- MultiByteCodec.cs
- CacheHelper.cs
- SmtpAuthenticationManager.cs
- Journaling.cs
- Point.cs
- XPathNodeHelper.cs
- SqlDeflator.cs
- PaintValueEventArgs.cs
- SqlTransaction.cs
- ImageMetadata.cs
- ListViewGroup.cs
- DriveInfo.cs
- IISUnsafeMethods.cs
- ContextQuery.cs
- LockedActivityGlyph.cs
- ArrangedElementCollection.cs
- DbConnectionPoolGroupProviderInfo.cs
- QueryOutputWriter.cs
- MetadataPropertyAttribute.cs
- AdornerLayer.cs
- CssStyleCollection.cs
- DataGridViewUtilities.cs
- SQLInt32Storage.cs
- SchemaImporterExtensionsSection.cs
- initElementDictionary.cs
- MobileListItem.cs
- TrackingServices.cs
- RemotingServices.cs
- Native.cs
- OpCodes.cs
- OracleBoolean.cs
- ButtonPopupAdapter.cs
- ResponseStream.cs
- Image.cs
- _SingleItemRequestCache.cs
- AlternateViewCollection.cs
- Stack.cs
- ModelFactory.cs
- TemplateAction.cs
- CreateSequence.cs
- AdPostCacheSubstitution.cs
- ExceptionUtil.cs
- RegularExpressionValidator.cs
- CodeSubDirectoriesCollection.cs
- ByteStreamGeometryContext.cs
- NonBatchDirectoryCompiler.cs
- SystemIcmpV6Statistics.cs
- QilName.cs
- TrailingSpaceComparer.cs
- TaskFormBase.cs
- XmlSchemaComplexContentRestriction.cs
- _PooledStream.cs
- DockingAttribute.cs
- IndentedTextWriter.cs
- DataPointer.cs
- RichTextBox.cs
- ServiceProviders.cs
- SerializationException.cs
- WebPartDescription.cs