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
- __TransparentProxy.cs
- FileCodeGroup.cs
- HitTestDrawingContextWalker.cs
- SafeCertificateContext.cs
- ObjectConverter.cs
- WebPartTransformerCollection.cs
- Main.cs
- NamespaceEmitter.cs
- StatusBarPanelClickEvent.cs
- TaiwanCalendar.cs
- EmptyControlCollection.cs
- SqlBulkCopyColumnMapping.cs
- BinarySerializer.cs
- SerializationException.cs
- UmAlQuraCalendar.cs
- NumberFormatter.cs
- ActivityTypeDesigner.xaml.cs
- UnknownBitmapEncoder.cs
- StretchValidation.cs
- SerializationObjectManager.cs
- AbandonedMutexException.cs
- DocComment.cs
- LockRenewalTask.cs
- XhtmlBasicObjectListAdapter.cs
- ListenerElementsCollection.cs
- MultiBinding.cs
- RIPEMD160Managed.cs
- ServiceOperationListItemList.cs
- BatchWriter.cs
- Timeline.cs
- InkSerializer.cs
- MarshalDirectiveException.cs
- HyperLinkColumn.cs
- MailHeaderInfo.cs
- SecurityIdentifierConverter.cs
- XmlArrayItemAttributes.cs
- Input.cs
- XslVisitor.cs
- GeometryModel3D.cs
- PageEventArgs.cs
- Atom10FormatterFactory.cs
- UmAlQuraCalendar.cs
- WindowAutomationPeer.cs
- DbFunctionCommandTree.cs
- WebBrowserDesigner.cs
- ListDataHelper.cs
- TerminatorSinks.cs
- PasswordBoxAutomationPeer.cs
- MouseEventArgs.cs
- ActivityStateRecord.cs
- KeyValuePair.cs
- FixedNode.cs
- PropertyGroupDescription.cs
- BitmapCodecInfo.cs
- DatatypeImplementation.cs
- EntryWrittenEventArgs.cs
- PrePostDescendentsWalker.cs
- PageFunction.cs
- SiteMapDataSource.cs
- ClaimTypeRequirement.cs
- RelationshipEntry.cs
- UInt32Converter.cs
- Popup.cs
- DBDataPermission.cs
- _NativeSSPI.cs
- TypeUsageBuilder.cs
- WebResponse.cs
- StrongName.cs
- WindowsRebar.cs
- WebEventTraceProvider.cs
- MarkupExtensionSerializer.cs
- ShapeTypeface.cs
- VerticalAlignConverter.cs
- XamlUtilities.cs
- SmtpTransport.cs
- ToolBarOverflowPanel.cs
- CatalogZoneDesigner.cs
- DropDownList.cs
- XsltException.cs
- ValueChangedEventManager.cs
- WebBrowserProgressChangedEventHandler.cs
- Literal.cs
- XmlSubtreeReader.cs
- DataGridViewColumn.cs
- ConfigurationManagerInternalFactory.cs
- BuilderPropertyEntry.cs
- DataBoundControl.cs
- LowerCaseStringConverter.cs
- IImplicitResourceProvider.cs
- PerformanceCountersElement.cs
- DialogResultConverter.cs
- ParserStack.cs
- SessionStateModule.cs
- EntityStoreSchemaFilterEntry.cs
- ModuleElement.cs
- TreePrinter.cs
- WindowsTitleBar.cs
- TypedDataSourceCodeGenerator.cs
- NeedSkipTokenVisitor.cs
- GPRECTF.cs