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
- SafeReversePInvokeHandle.cs
- UnsafeNativeMethods.cs
- safesecurityhelperavalon.cs
- XmlSchemaAttribute.cs
- WebPartDisplayModeCancelEventArgs.cs
- Image.cs
- PasswordDeriveBytes.cs
- ToolStripPanelRow.cs
- WebServiceErrorEvent.cs
- XmlSequenceWriter.cs
- RoleGroup.cs
- TreeBuilderXamlTranslator.cs
- DataBinding.cs
- TimeSpanValidatorAttribute.cs
- CompositeFontParser.cs
- HttpCachePolicy.cs
- ExecutionProperties.cs
- WorkflowOperationAsyncResult.cs
- PrimaryKeyTypeConverter.cs
- WindowsListViewScroll.cs
- ToolStripItemDataObject.cs
- CookielessHelper.cs
- BatchWriter.cs
- OleAutBinder.cs
- TraversalRequest.cs
- XsdDuration.cs
- TagPrefixAttribute.cs
- dbdatarecord.cs
- BasicHttpSecurity.cs
- VBCodeProvider.cs
- TextServicesContext.cs
- KoreanLunisolarCalendar.cs
- PropertyGridCommands.cs
- Empty.cs
- ThreadPoolTaskScheduler.cs
- GeneralTransform3DCollection.cs
- GridViewPageEventArgs.cs
- StandardCommands.cs
- TrackingStringDictionary.cs
- MsmqTransportSecurityElement.cs
- Tokenizer.cs
- FaultContractInfo.cs
- SqlDataSourceWizardForm.cs
- ProcessStartInfo.cs
- TableAdapterManagerGenerator.cs
- MergePropertyDescriptor.cs
- DbConnectionHelper.cs
- IChannel.cs
- WindowsListView.cs
- SafePointer.cs
- EventPrivateKey.cs
- SqlDataSourceCommandEventArgs.cs
- Matrix3DConverter.cs
- DbProviderFactoriesConfigurationHandler.cs
- CancellableEnumerable.cs
- SignatureConfirmations.cs
- ObjectComplexPropertyMapping.cs
- Form.cs
- Viewport2DVisual3D.cs
- MethodToken.cs
- ToolboxItemWrapper.cs
- CheckPair.cs
- WebReference.cs
- FixedSOMTextRun.cs
- DiscardableAttribute.cs
- _HeaderInfo.cs
- ContextProperty.cs
- DocumentXPathNavigator.cs
- ClientReliableChannelBinder.cs
- HealthMonitoringSection.cs
- CreateUserWizardStep.cs
- ConfigurationElementProperty.cs
- Context.cs
- IdentityHolder.cs
- BitmapFrameEncode.cs
- ImageAttributes.cs
- TextViewBase.cs
- QilPatternFactory.cs
- XmlQueryRuntime.cs
- WebPartConnectionsEventArgs.cs
- DependencyObjectProvider.cs
- RewritingValidator.cs
- HttpModuleCollection.cs
- BulletedListEventArgs.cs
- DataListCommandEventArgs.cs
- CodeBlockBuilder.cs
- SingleConverter.cs
- LineSegment.cs
- GiveFeedbackEvent.cs
- ActivityBuilderHelper.cs
- ObjectViewListener.cs
- StateChangeEvent.cs
- iisPickupDirectory.cs
- HttpPostProtocolReflector.cs
- XmlSequenceWriter.cs
- XmlDataLoader.cs
- ItemCheckEvent.cs
- ProcessHostFactoryHelper.cs
- AsyncOperationManager.cs
- TextViewBase.cs