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
- ListChangedEventArgs.cs
- DataGridRow.cs
- TextEndOfSegment.cs
- DataGridViewTextBoxEditingControl.cs
- BooleanStorage.cs
- XamlTypeMapper.cs
- Int16Converter.cs
- PageContentCollection.cs
- Bits.cs
- LinkLabel.cs
- X509CertificateClaimSet.cs
- BamlWriter.cs
- OperationInvokerBehavior.cs
- DataGridViewColumnTypeEditor.cs
- ToolStripOverflow.cs
- GPStream.cs
- PathGeometry.cs
- BeginStoryboard.cs
- XPathDocumentNavigator.cs
- DelegateBodyWriter.cs
- LineBreakRecord.cs
- PrinterResolution.cs
- PointKeyFrameCollection.cs
- WeakEventManager.cs
- TextSpanModifier.cs
- HyperLinkColumn.cs
- AudioFileOut.cs
- XmlValidatingReader.cs
- LiteralTextContainerControlBuilder.cs
- peernodestatemanager.cs
- FreeFormDesigner.cs
- ISAPIRuntime.cs
- SqlDataSourceCommandEventArgs.cs
- ToolStripSystemRenderer.cs
- XmlSequenceWriter.cs
- regiisutil.cs
- CodeAttributeArgument.cs
- XamlSerializer.cs
- TextElementAutomationPeer.cs
- COM2ColorConverter.cs
- ErrorProvider.cs
- XamlTypeMapper.cs
- UpdatePanelControlTrigger.cs
- DataDocumentXPathNavigator.cs
- ObjectHelper.cs
- DllHostedComPlusServiceHost.cs
- DataRelation.cs
- OperationSelectorBehavior.cs
- FastPropertyAccessor.cs
- ManualResetEventSlim.cs
- ObjectConverter.cs
- NegatedConstant.cs
- RSAPKCS1KeyExchangeFormatter.cs
- EventLogTraceListener.cs
- VirtualDirectoryMapping.cs
- BoolExpressionVisitors.cs
- UseManagedPresentationBindingElementImporter.cs
- Bitmap.cs
- NestedContainer.cs
- SQLByte.cs
- WebPartCloseVerb.cs
- GraphicsContainer.cs
- KeyedQueue.cs
- EventSourceCreationData.cs
- FactoryId.cs
- ProtocolReflector.cs
- ReadOnlyDictionary.cs
- AsyncResult.cs
- SendingRequestEventArgs.cs
- WindowsImpersonationContext.cs
- SqlPersonalizationProvider.cs
- RbTree.cs
- InitializationEventAttribute.cs
- SimpleHandlerBuildProvider.cs
- ParagraphVisual.cs
- XhtmlBasicCalendarAdapter.cs
- XmlSchemaSubstitutionGroup.cs
- WindowsFormsLinkLabel.cs
- CheckBoxField.cs
- FontStyles.cs
- NativeMethods.cs
- Preprocessor.cs
- SimpleParser.cs
- XmlC14NWriter.cs
- WebPartTransformer.cs
- OdbcConnectionOpen.cs
- DirectoryLocalQuery.cs
- SecurityTokenException.cs
- OutOfProcStateClientManager.cs
- DeleteIndexBinder.cs
- NumericUpDownAccelerationCollection.cs
- SchemaSetCompiler.cs
- HostProtectionPermission.cs
- xmlsaver.cs
- ProvideValueServiceProvider.cs
- MsmqIntegrationInputMessage.cs
- ILGenerator.cs
- TypeUtil.cs
- NestPullup.cs
- XmlSchemaImport.cs