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
- CodeGotoStatement.cs
- FakeModelPropertyImpl.cs
- BooleanSwitch.cs
- EpmContentSerializer.cs
- ConfigurationManagerHelper.cs
- SiteMembershipCondition.cs
- WebAdminConfigurationHelper.cs
- TraceLevelHelper.cs
- ResXDataNode.cs
- IsolatedStoragePermission.cs
- EncoderBestFitFallback.cs
- FolderBrowserDialog.cs
- FactoryGenerator.cs
- ObsoleteAttribute.cs
- ArrangedElement.cs
- DBConnection.cs
- DataGrid.cs
- ContentFileHelper.cs
- NavigationCommands.cs
- BitmapPalette.cs
- NotifyIcon.cs
- CodeTypeDelegate.cs
- WinFormsUtils.cs
- IconBitmapDecoder.cs
- XamlSerializerUtil.cs
- ScriptReference.cs
- SafeRightsManagementSessionHandle.cs
- RadioButtonFlatAdapter.cs
- EditBehavior.cs
- XmlFileEditor.cs
- Padding.cs
- DynamicQueryableWrapper.cs
- HttpRuntime.cs
- AppearanceEditorPart.cs
- ObjectItemNoOpAssemblyLoader.cs
- RuleInfoComparer.cs
- RepeaterDataBoundAdapter.cs
- GraphicsPath.cs
- FormViewDeletedEventArgs.cs
- ControlBuilderAttribute.cs
- Main.cs
- EventSinkActivityDesigner.cs
- Configuration.cs
- DataGridViewColumnCollection.cs
- DocumentSchemaValidator.cs
- TopClause.cs
- TrackBarRenderer.cs
- Single.cs
- AncillaryOps.cs
- NotifyParentPropertyAttribute.cs
- StatusBarItemAutomationPeer.cs
- Operand.cs
- ProtocolsSection.cs
- GeneralTransform3DGroup.cs
- LinqDataView.cs
- NonVisualControlAttribute.cs
- ReliabilityContractAttribute.cs
- DateTimeEditor.cs
- DrawingContextDrawingContextWalker.cs
- TailCallAnalyzer.cs
- DbParameterCollectionHelper.cs
- LockCookie.cs
- DataGridViewHeaderCell.cs
- CommandEventArgs.cs
- SqlDataSourceAdvancedOptionsForm.cs
- KnownTypesHelper.cs
- SqlNodeTypeOperators.cs
- SqlMethods.cs
- ConnectionManagementSection.cs
- LocalBuilder.cs
- Pkcs7Signer.cs
- ComplexLine.cs
- LayoutInformation.cs
- Font.cs
- TreeViewImageIndexConverter.cs
- ReachDocumentReferenceSerializer.cs
- WmiPutTraceRecord.cs
- PasswordBoxAutomationPeer.cs
- Size.cs
- HttpApplication.cs
- StandardOleMarshalObject.cs
- FunctionParameter.cs
- ComboBoxItem.cs
- ClientConvert.cs
- Column.cs
- CodeThrowExceptionStatement.cs
- HtmlInputImage.cs
- StoreAnnotationsMap.cs
- Pointer.cs
- ExpressionConverter.cs
- XmlnsCache.cs
- ValueChangedEventManager.cs
- SafeCryptHandles.cs
- ToolStripDropDownDesigner.cs
- SqlBulkCopy.cs
- ToolstripProfessionalRenderer.cs
- Floater.cs
- SizeConverter.cs
- MtomMessageEncoder.cs
- GridViewUpdatedEventArgs.cs