Code:
/ DotNET / DotNET / 8.0 / untmp / whidbey / REDBITS / ndp / fx / src / xsp / System / Web / HttpResponseHeader.cs / 3 / HttpResponseHeader.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- /* * Single http header representation * * Copyright (c) 1998 Microsoft Corporation */ namespace System.Web { using System.Collections; /* * Response header (either known or unknown) */ internal class HttpResponseHeader { private String _unknownHeader; private int _knownHeaderIndex; private String _value; private static readonly char [] s_BadChars = new char[] {'\n', '\r', '\0'}; internal HttpResponseHeader(int knownHeaderIndex, String value) { _unknownHeader = null; _knownHeaderIndex = knownHeaderIndex; // encode header value if if(HttpRuntime.EnableHeaderChecking) { _value = MaybeEncodeHeader(value); } else { _value = value; } } internal HttpResponseHeader(String unknownHeader, String value) { if(HttpRuntime.EnableHeaderChecking) { _unknownHeader = MaybeEncodeHeader(unknownHeader); _knownHeaderIndex = HttpWorkerRequest.GetKnownResponseHeaderIndex(_unknownHeader); _value = MaybeEncodeHeader(value); } else { _unknownHeader = unknownHeader; _knownHeaderIndex = HttpWorkerRequest.GetKnownResponseHeaderIndex(_unknownHeader); _value = value; } } internal virtual String Name { get { if (_unknownHeader != null) return _unknownHeader; else return HttpWorkerRequest.GetKnownResponseHeaderName(_knownHeaderIndex); } } internal String Value { get { return _value;} } internal void Send(HttpWorkerRequest wr) { if (_knownHeaderIndex >= 0) wr.SendKnownResponseHeader(_knownHeaderIndex, _value); else wr.SendUnknownResponseHeader(_unknownHeader, _value); } // Encode the header if it contains a CRLF pair // VSWhidbey 257154 internal static string MaybeEncodeHeader(string value) { string sanitizedHeader = value; if (value.IndexOfAny(s_BadChars) >= 0) { // if we found a CRLF pair or NULL in the header, replace it // this is slow but isn't expected to occur often // review: will any clients try to decode this? // should it just be a space? sanitizedHeader = value.Replace("\n", "%0a"); sanitizedHeader = sanitizedHeader.Replace("\r", "%0d"); sanitizedHeader = sanitizedHeader.Replace("\0", "%00"); } return sanitizedHeader; } } }
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- SimpleHandlerBuildProvider.cs
- SignatureHelper.cs
- DigestTraceRecordHelper.cs
- OleDbTransaction.cs
- SafeNativeMethods.cs
- SByteConverter.cs
- TouchEventArgs.cs
- CaseStatement.cs
- Renderer.cs
- InvalidDataException.cs
- EventDrivenDesigner.cs
- EventBuilder.cs
- ColumnHeaderConverter.cs
- SystemNetHelpers.cs
- PropertyManager.cs
- OpCodes.cs
- DataSvcMapFileSerializer.cs
- DecimalMinMaxAggregationOperator.cs
- IDataContractSurrogate.cs
- XmlSchemaNotation.cs
- GeometryDrawing.cs
- Convert.cs
- Splitter.cs
- SequenceRangeCollection.cs
- TreeIterators.cs
- StorageEntitySetMapping.cs
- ValueType.cs
- XmlAnyElementAttributes.cs
- XmlLangPropertyAttribute.cs
- latinshape.cs
- TrayIconDesigner.cs
- ExpressionBuilder.cs
- InternalConfigHost.cs
- ProxyGenerator.cs
- UrlPath.cs
- SafeViewOfFileHandle.cs
- ScrollChrome.cs
- TemplateBindingExpression.cs
- RuntimeWrappedException.cs
- BoundColumn.cs
- SessionPageStatePersister.cs
- TileModeValidation.cs
- Ticks.cs
- TextServicesPropertyRanges.cs
- CodeCommentStatement.cs
- AQNBuilder.cs
- Model3DCollection.cs
- ThemeDirectoryCompiler.cs
- VisualState.cs
- PageFunction.cs
- UnmanagedHandle.cs
- Base64Decoder.cs
- BindingBase.cs
- EntitySetBaseCollection.cs
- ListBindableAttribute.cs
- XamlDesignerSerializationManager.cs
- TrackBar.cs
- ActivityLocationReferenceEnvironment.cs
- EventRoute.cs
- CursorEditor.cs
- PolicyUnit.cs
- ReadOnlyPropertyMetadata.cs
- XmlUrlResolver.cs
- KnownBoxes.cs
- AutomationInteropProvider.cs
- DataBinding.cs
- InputScope.cs
- TileBrush.cs
- Parser.cs
- EraserBehavior.cs
- CacheHelper.cs
- TdsValueSetter.cs
- EFColumnProvider.cs
- GradientStop.cs
- FormViewDeleteEventArgs.cs
- Thread.cs
- XmlStringTable.cs
- Convert.cs
- CacheChildrenQuery.cs
- NamedPipeHostedTransportConfiguration.cs
- DataGridViewCell.cs
- TableItemStyle.cs
- CacheDependency.cs
- DataControlButton.cs
- ButtonBase.cs
- TextBounds.cs
- PermissionListSet.cs
- ResourcePool.cs
- ClosureBinding.cs
- CmsInterop.cs
- DataGridViewAccessibleObject.cs
- TransformedBitmap.cs
- ActivityUtilities.cs
- LineServices.cs
- CodeDirectoryCompiler.cs
- TraceFilter.cs
- PersonalizationProvider.cs
- EmptyEnumerator.cs
- BCryptNative.cs
- OleDbInfoMessageEvent.cs