Code:
/ 4.0 / 4.0 / 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. //------------------------------------------------------------ // 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
- RequiredFieldValidator.cs
- Color.cs
- XmlMembersMapping.cs
- QuadraticBezierSegment.cs
- RootBuilder.cs
- PageAction.cs
- UndoEngine.cs
- SendKeys.cs
- GridViewUpdatedEventArgs.cs
- CommandLibraryHelper.cs
- InstanceDataCollection.cs
- ScriptResourceHandler.cs
- Avt.cs
- IdentityModelDictionary.cs
- HttpMethodConstraint.cs
- DataAdapter.cs
- MsmqDiagnostics.cs
- FigureHelper.cs
- UpDownBase.cs
- DllNotFoundException.cs
- BitmapSource.cs
- DataGridViewCellValidatingEventArgs.cs
- KnownColorTable.cs
- WebPartUtil.cs
- ScriptBehaviorDescriptor.cs
- LinearKeyFrames.cs
- SizeAnimation.cs
- StringPropertyBuilder.cs
- NetWebProxyFinder.cs
- ApplicationInfo.cs
- RouteValueExpressionBuilder.cs
- LoadedOrUnloadedOperation.cs
- XmlObjectSerializerWriteContextComplexJson.cs
- XPathNavigatorKeyComparer.cs
- ExceptionUtil.cs
- XmlFileEditor.cs
- ValidationRule.cs
- GetResponse.cs
- AttributedMetaModel.cs
- PackagingUtilities.cs
- DrawItemEvent.cs
- QueuePathEditor.cs
- BuildProviderCollection.cs
- Grid.cs
- HttpDebugHandler.cs
- WebPageTraceListener.cs
- FileClassifier.cs
- ResourceDictionary.cs
- QueueProcessor.cs
- SecurityCriticalDataForSet.cs
- HtmlElementEventArgs.cs
- DBSqlParser.cs
- ListViewItem.cs
- DefaultWorkflowSchedulerService.cs
- ContainerUIElement3D.cs
- CollectionsUtil.cs
- updatecommandorderer.cs
- ToolStripLabel.cs
- SignatureDescription.cs
- GenericWebPart.cs
- BinaryCommonClasses.cs
- cookiecontainer.cs
- PageRanges.cs
- AssemblyCache.cs
- ArgumentOutOfRangeException.cs
- CachedPathData.cs
- ToolboxSnapDragDropEventArgs.cs
- ReplacementText.cs
- KeyGesture.cs
- XmlAttributeAttribute.cs
- URLIdentityPermission.cs
- SqlDataSourceCache.cs
- NavigateEvent.cs
- AssociationType.cs
- UnsafeNativeMethods.cs
- FacetValueContainer.cs
- UIElement.cs
- BaseConfigurationRecord.cs
- SiteMapSection.cs
- OleDbRowUpdatedEvent.cs
- ToolStripDesignerAvailabilityAttribute.cs
- ScrollViewerAutomationPeer.cs
- ParseChildrenAsPropertiesAttribute.cs
- PathNode.cs
- DataGridViewCellPaintingEventArgs.cs
- MSAAEventDispatcher.cs
- TraversalRequest.cs
- HtmlEmptyTagControlBuilder.cs
- QilSortKey.cs
- NavigationProgressEventArgs.cs
- BehaviorDragDropEventArgs.cs
- ArgumentFixer.cs
- TagElement.cs
- ListControl.cs
- PipeStream.cs
- PreProcessInputEventArgs.cs
- XmlSchemaExporter.cs
- InstallerTypeAttribute.cs
- SmiRequestExecutor.cs
- CalendarButtonAutomationPeer.cs