Code:
/ FX-1434 / FX-1434 / 1.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
- MbpInfo.cs
- BitmapEffectDrawingContent.cs
- ObjectDataSourceMethodEventArgs.cs
- SimpleType.cs
- PersonalizationProviderCollection.cs
- MediaContextNotificationWindow.cs
- PenThreadWorker.cs
- DataContract.cs
- SoapIncludeAttribute.cs
- HitTestDrawingContextWalker.cs
- DockAndAnchorLayout.cs
- FontStretch.cs
- NamedPipeHostedTransportConfiguration.cs
- ListViewCommandEventArgs.cs
- SchemaType.cs
- InfoCardRSAOAEPKeyExchangeFormatter.cs
- FunctionImportElement.cs
- WebServiceTypeData.cs
- SchemaImporterExtension.cs
- ValidatorCollection.cs
- DataGridViewRowEventArgs.cs
- SponsorHelper.cs
- XmlSchemaDocumentation.cs
- validationstate.cs
- NumberAction.cs
- Bold.cs
- SettingsSection.cs
- DataErrorValidationRule.cs
- Error.cs
- CodeIterationStatement.cs
- LayoutInformation.cs
- FilterQueryOptionExpression.cs
- Char.cs
- XhtmlBasicPageAdapter.cs
- URLAttribute.cs
- UserInitiatedNavigationPermission.cs
- HttpCacheVary.cs
- XmlSchemaImporter.cs
- OutOfMemoryException.cs
- OletxCommittableTransaction.cs
- SqlVersion.cs
- BuiltInExpr.cs
- ExceptionNotification.cs
- DataGridViewImageCell.cs
- BrowserCapabilitiesFactoryBase.cs
- ProcessModuleCollection.cs
- InstanceOwner.cs
- ExpandoClass.cs
- compensatingcollection.cs
- RenderCapability.cs
- MethodSignatureGenerator.cs
- SystemFonts.cs
- XmlDataContract.cs
- DataSpaceManager.cs
- NoClickablePointException.cs
- Debug.cs
- ResponseStream.cs
- XmlExtensionFunction.cs
- DXD.cs
- GiveFeedbackEvent.cs
- DataGridViewBindingCompleteEventArgs.cs
- PrintPageEvent.cs
- SerialReceived.cs
- ErrorTableItemStyle.cs
- WindowsHyperlink.cs
- PropertyGridEditorPart.cs
- SqlPersistenceWorkflowInstanceDescription.cs
- SingleAnimationBase.cs
- RegexStringValidatorAttribute.cs
- BinaryUtilClasses.cs
- MemberDescriptor.cs
- SkewTransform.cs
- SafeFindHandle.cs
- NamespaceQuery.cs
- NumericUpDownAccelerationCollection.cs
- ServiceDesigner.xaml.cs
- TextEditorTables.cs
- TextSerializer.cs
- oledbmetadatacollectionnames.cs
- TextUtf8RawTextWriter.cs
- PropertyNames.cs
- SecurityContext.cs
- ViewRendering.cs
- PipelineModuleStepContainer.cs
- SessionStateSection.cs
- SelectionRangeConverter.cs
- Int64.cs
- UInt64Converter.cs
- AdornerLayer.cs
- RegistrySecurity.cs
- CertificateElement.cs
- StrokeRenderer.cs
- DecimalStorage.cs
- SqlGenericUtil.cs
- ScriptIgnoreAttribute.cs
- Helpers.cs
- COM2ColorConverter.cs
- StringConverter.cs
- RegexRunner.cs
- ReferentialConstraintRoleElement.cs