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
- ContextInformation.cs
- BuildTopDownAttribute.cs
- TextBlockAutomationPeer.cs
- EventProvider.cs
- UnSafeCharBuffer.cs
- CollectionType.cs
- ImageDrawing.cs
- RevocationPoint.cs
- DataRecordInternal.cs
- ProcessManager.cs
- HtmlHistory.cs
- XmlWrappingReader.cs
- TextProperties.cs
- ResXDataNode.cs
- DataControlField.cs
- CodeDomComponentSerializationService.cs
- DataSourceCacheDurationConverter.cs
- BaseParser.cs
- EventProvider.cs
- ScopeElement.cs
- ApplicationHost.cs
- EnumType.cs
- XmlNotation.cs
- XmlWellformedWriter.cs
- EdmComplexTypeAttribute.cs
- DBProviderConfigurationHandler.cs
- DesignerView.cs
- FileRecordSequence.cs
- XmlSignatureManifest.cs
- ThreadInterruptedException.cs
- FontConverter.cs
- MessageSmuggler.cs
- TabItem.cs
- WSHttpBindingCollectionElement.cs
- BlurBitmapEffect.cs
- GridItemCollection.cs
- SafeMILHandle.cs
- TraceProvider.cs
- WebPartExportVerb.cs
- BasePattern.cs
- HttpResponse.cs
- _UncName.cs
- WeakReferenceKey.cs
- ExpressionBindingCollection.cs
- TagMapInfo.cs
- ItemsControlAutomationPeer.cs
- ConstraintStruct.cs
- ModuleElement.cs
- LoginCancelEventArgs.cs
- XmlILTrace.cs
- ApplicationDirectory.cs
- SHA512CryptoServiceProvider.cs
- ValidatorCompatibilityHelper.cs
- DefaultClaimSet.cs
- ActivityMarkupSerializationProvider.cs
- WebAdminConfigurationHelper.cs
- HttpListener.cs
- String.cs
- SqlCachedBuffer.cs
- XmlSchemaComplexType.cs
- MutableAssemblyCacheEntry.cs
- XPathDocumentBuilder.cs
- BoundColumn.cs
- XmlAttributeCache.cs
- FileLogRecordHeader.cs
- Size3D.cs
- FixedLineResult.cs
- NativeMethods.cs
- InvokeMethodDesigner.xaml.cs
- ConstraintEnumerator.cs
- NavigationExpr.cs
- SiblingIterators.cs
- TokenDescriptor.cs
- DataGridViewRowConverter.cs
- IncrementalHitTester.cs
- ProfileBuildProvider.cs
- PingOptions.cs
- DataControlFieldHeaderCell.cs
- DataServiceProviderMethods.cs
- StreamAsIStream.cs
- ClientConfigurationSystem.cs
- UnsafeMethods.cs
- JsonWriter.cs
- Size3DConverter.cs
- ConfigXmlWhitespace.cs
- ColumnResizeAdorner.cs
- WindowsSecurityTokenAuthenticator.cs
- Select.cs
- ItemTypeToolStripMenuItem.cs
- ConstructorArgumentAttribute.cs
- XamlPointCollectionSerializer.cs
- BindingNavigator.cs
- ControlPaint.cs
- VarInfo.cs
- AnnotationObservableCollection.cs
- X509ChainElement.cs
- GlyphInfoList.cs
- WCFServiceClientProxyGenerator.cs
- HashHelper.cs
- GlyphRunDrawing.cs