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
- SoapFault.cs
- CanExecuteRoutedEventArgs.cs
- HttpSessionStateWrapper.cs
- MobileControlPersister.cs
- FunctionUpdateCommand.cs
- ObfuscateAssemblyAttribute.cs
- DataGridPagerStyle.cs
- TaiwanLunisolarCalendar.cs
- XmlCountingReader.cs
- DbParameterCollectionHelper.cs
- Graph.cs
- EventBuilder.cs
- XmlAttributeHolder.cs
- HostingEnvironmentSection.cs
- prompt.cs
- CategoryEditor.cs
- MiniParameterInfo.cs
- ResourceContainer.cs
- SelectedDatesCollection.cs
- FullTextLine.cs
- EmptyEnumerable.cs
- InputBinding.cs
- ObjectTypeMapping.cs
- JoinCqlBlock.cs
- localization.cs
- CommonDialog.cs
- XsdDateTime.cs
- BinaryParser.cs
- _PooledStream.cs
- BaseTemplateCodeDomTreeGenerator.cs
- ClientScriptManagerWrapper.cs
- TypeGeneratedEventArgs.cs
- DataGridViewToolTip.cs
- AdRotatorDesigner.cs
- CodeCommentStatementCollection.cs
- AsyncCodeActivityContext.cs
- DataBoundLiteralControl.cs
- WmlValidatorAdapter.cs
- HttpTransportSecurityElement.cs
- HashAlgorithm.cs
- GeometryConverter.cs
- DataGridViewComboBoxEditingControl.cs
- ActionItem.cs
- KeyGesture.cs
- DataObjectMethodAttribute.cs
- LambdaCompiler.cs
- SchemaImporterExtensionElementCollection.cs
- MobileErrorInfo.cs
- storepermissionattribute.cs
- WebReferencesBuildProvider.cs
- Token.cs
- ListViewUpdateEventArgs.cs
- ProtocolsConfigurationEntry.cs
- SafeSerializationManager.cs
- UrlMappingCollection.cs
- SharedConnectionWorkflowTransactionService.cs
- TypeListConverter.cs
- LayoutTable.cs
- XmlAnyElementAttributes.cs
- CounterSetInstance.cs
- KeyTimeConverter.cs
- GridItemProviderWrapper.cs
- InheritanceContextHelper.cs
- DataKeyCollection.cs
- Condition.cs
- DropShadowBitmapEffect.cs
- SqlMetaData.cs
- ExeConfigurationFileMap.cs
- MouseCaptureWithinProperty.cs
- Ipv6Element.cs
- PropertyEmitter.cs
- DataSourceExpressionCollection.cs
- DateTimeConverter2.cs
- XhtmlTextWriter.cs
- ParallelTimeline.cs
- printdlgexmarshaler.cs
- FixedSOMPage.cs
- HtmlTitle.cs
- WS2007HttpBindingCollectionElement.cs
- PerformanceCounter.cs
- StateItem.cs
- InvokeAction.cs
- RequestResizeEvent.cs
- GenericPrincipal.cs
- TextEffectCollection.cs
- DataBinding.cs
- ContextInformation.cs
- XPathDocumentIterator.cs
- SmiConnection.cs
- WindowsRegion.cs
- DocumentXPathNavigator.cs
- ZipPackage.cs
- TextEditorTables.cs
- PrePrepareMethodAttribute.cs
- QilParameter.cs
- ObjectViewListener.cs
- NestedContainer.cs
- KeyboardEventArgs.cs
- HttpAsyncResult.cs
- EventProperty.cs