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
- TransactionProtocol.cs
- WindowsListViewSubItem.cs
- BindableTemplateBuilder.cs
- NavigationWindow.cs
- Mouse.cs
- WindowsUserNameCachingSecurityTokenAuthenticator.cs
- TextLineBreak.cs
- ConnectionManager.cs
- Menu.cs
- XslException.cs
- StrokeNodeData.cs
- MD5CryptoServiceProvider.cs
- SpeakInfo.cs
- CellTreeNodeVisitors.cs
- AbandonedMutexException.cs
- MemoryPressure.cs
- SqlAliasesReferenced.cs
- IntSecurity.cs
- MemoryRecordBuffer.cs
- UnsafeNativeMethods.cs
- DockPattern.cs
- Control.cs
- xamlnodes.cs
- EdmSchemaAttribute.cs
- RandomNumberGenerator.cs
- ForEachDesigner.xaml.cs
- AttachInfo.cs
- FilteredXmlReader.cs
- EventRecord.cs
- LineProperties.cs
- DataGridViewCellStyle.cs
- XmlAnyElementAttributes.cs
- TextEditorThreadLocalStore.cs
- cache.cs
- MultiBinding.cs
- SiteMapNodeItemEventArgs.cs
- XmlValidatingReader.cs
- X509CertificateClaimSet.cs
- InspectionWorker.cs
- BaseDataList.cs
- WorkflowRuntimeBehavior.cs
- SslStreamSecurityUpgradeProvider.cs
- ToolStripManager.cs
- AxWrapperGen.cs
- PathData.cs
- HttpRequestCacheValidator.cs
- Label.cs
- ListView.cs
- InputGestureCollection.cs
- EncoderParameter.cs
- TraceContextRecord.cs
- ZipIOCentralDirectoryFileHeader.cs
- StreamUpgradeBindingElement.cs
- CreateUserWizardStep.cs
- SmiContext.cs
- ScrollableControl.cs
- AssociationSetEnd.cs
- XmlElementCollection.cs
- XmlNodeChangedEventArgs.cs
- AdapterUtil.cs
- DataControlFieldCell.cs
- PropertyEmitter.cs
- DataGridViewRowPostPaintEventArgs.cs
- Expression.cs
- DataGridColumnCollection.cs
- RegexRunnerFactory.cs
- ClientSideProviderDescription.cs
- OletxDependentTransaction.cs
- StylusPoint.cs
- ComPlusTraceRecord.cs
- PropertyInfo.cs
- Error.cs
- HttpInputStream.cs
- SafeNativeMethods.cs
- Model3DGroup.cs
- MarkerProperties.cs
- ToolboxItemAttribute.cs
- EdmConstants.cs
- XmlSerializerAssemblyAttribute.cs
- ComAdminWrapper.cs
- MruCache.cs
- WebConfigurationManager.cs
- DocumentGrid.cs
- GroupQuery.cs
- Screen.cs
- EventMemberCodeDomSerializer.cs
- HashCodeCombiner.cs
- DataGridHeaderBorder.cs
- SimpleWebHandlerParser.cs
- ProgressiveCrcCalculatingStream.cs
- WeakRefEnumerator.cs
- VolatileEnlistmentState.cs
- AssemblySettingAttributes.cs
- WebResponse.cs
- Exceptions.cs
- FilterEventArgs.cs
- ServiceDeploymentInfo.cs
- DispatcherOperation.cs
- _SecureChannel.cs
- DiscriminatorMap.cs