Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / WCF / IdentityModel / System / IdentityModel / CanonicalFormWriter.cs / 1305376 / 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- DockProviderWrapper.cs
- entityreference_tresulttype.cs
- SoapExtension.cs
- DesignSurfaceCollection.cs
- CollectionViewGroupRoot.cs
- CustomError.cs
- SmiMetaDataProperty.cs
- ColumnClickEvent.cs
- DataTableNewRowEvent.cs
- SafeHandles.cs
- Floater.cs
- XmlIlVisitor.cs
- FormViewUpdateEventArgs.cs
- SocketCache.cs
- StoreItemCollection.Loader.cs
- XmlBuffer.cs
- TrackBar.cs
- PeerNameRecord.cs
- CodeTypeDeclarationCollection.cs
- FamilyTypeface.cs
- XmlNamespaceDeclarationsAttribute.cs
- UInt16Converter.cs
- DataContractSerializerSection.cs
- RegisterInfo.cs
- StringArrayConverter.cs
- PropertyGridView.cs
- CompoundFileIOPermission.cs
- FileUpload.cs
- ButtonChrome.cs
- PointValueSerializer.cs
- basenumberconverter.cs
- LinearKeyFrames.cs
- OracleLob.cs
- MenuItemCollection.cs
- EqualityArray.cs
- WindowsFormsHostAutomationPeer.cs
- AuthenticationModuleElementCollection.cs
- StringConcat.cs
- EncoderNLS.cs
- FontCacheLogic.cs
- WebDescriptionAttribute.cs
- IProvider.cs
- SqlRowUpdatingEvent.cs
- PriorityRange.cs
- SrgsGrammar.cs
- SystemColors.cs
- BinaryWriter.cs
- NativeMethodsOther.cs
- EventWaitHandle.cs
- HttpCapabilitiesBase.cs
- ProcessThread.cs
- CommandValueSerializer.cs
- EraserBehavior.cs
- SmiSettersStream.cs
- TransactedReceiveScope.cs
- Barrier.cs
- RowToParametersTransformer.cs
- CellTreeSimplifier.cs
- ListChangedEventArgs.cs
- ActivityScheduledRecord.cs
- MouseActionConverter.cs
- DataGridViewLayoutData.cs
- RoutedEventHandlerInfo.cs
- GACIdentityPermission.cs
- WindowsListViewGroup.cs
- StylusPointDescription.cs
- ProfileGroupSettings.cs
- HttpListenerPrefixCollection.cs
- UdpDuplexChannel.cs
- KeyValueSerializer.cs
- PagesSection.cs
- ViewStateModeByIdAttribute.cs
- FormViewDeleteEventArgs.cs
- BitmapEffectState.cs
- SystemIPAddressInformation.cs
- EntityContainer.cs
- FunctionQuery.cs
- StreamAsIStream.cs
- Converter.cs
- sqlnorm.cs
- AnnotationDocumentPaginator.cs
- ClosableStream.cs
- MemoryStream.cs
- TypeSchema.cs
- StateInitializationDesigner.cs
- HtmlShimManager.cs
- CompatibleComparer.cs
- StorageComplexPropertyMapping.cs
- SqlDependency.cs
- TextParagraphView.cs
- ClientSponsor.cs
- BindingsSection.cs
- InplaceBitmapMetadataWriter.cs
- TabItemAutomationPeer.cs
- SingleTagSectionHandler.cs
- Trace.cs
- TrackBarRenderer.cs
- MsmqIntegrationValidationBehavior.cs
- uribuilder.cs
- RootProjectionNode.cs