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
- UIElementCollection.cs
- ServicePointManager.cs
- XmlStreamStore.cs
- StringUtil.cs
- DrawingServices.cs
- FontEmbeddingManager.cs
- Enumerable.cs
- ContainerFilterService.cs
- Helpers.cs
- ThreadStaticAttribute.cs
- SerializationSectionGroup.cs
- XmlNode.cs
- MetadataFile.cs
- XMLSyntaxException.cs
- DirectoryInfo.cs
- ProtocolsConfigurationHandler.cs
- SymbolType.cs
- BaseValidator.cs
- SoapSchemaImporter.cs
- XPathArrayIterator.cs
- FrameworkTextComposition.cs
- Point4D.cs
- ArgumentException.cs
- NameNode.cs
- LoggedException.cs
- UdpMessageProperty.cs
- SHA1CryptoServiceProvider.cs
- SocketException.cs
- DBNull.cs
- DesignTimeHTMLTextWriter.cs
- DataGridViewRowHeaderCell.cs
- OdbcDataReader.cs
- PropertyGroupDescription.cs
- MissingManifestResourceException.cs
- ClientRoleProvider.cs
- HTMLTagNameToTypeMapper.cs
- SingleAnimationUsingKeyFrames.cs
- WindowsTokenRoleProvider.cs
- DnsEndPoint.cs
- InitializationEventAttribute.cs
- CodeAssignStatement.cs
- UnsafeNativeMethodsTablet.cs
- CfgParser.cs
- DataSetUtil.cs
- XsltLibrary.cs
- XComponentModel.cs
- StatusBarItemAutomationPeer.cs
- PolyBezierSegmentFigureLogic.cs
- ListViewDataItem.cs
- CodeTryCatchFinallyStatement.cs
- ConfigXmlWhitespace.cs
- ExceptionUtil.cs
- TimersDescriptionAttribute.cs
- SortDescriptionCollection.cs
- TextBoxView.cs
- WebPartDescription.cs
- XamlValidatingReader.cs
- ProjectionPathSegment.cs
- Activator.cs
- DynamicHyperLink.cs
- BitmapEditor.cs
- DescendentsWalker.cs
- NullableDecimalAverageAggregationOperator.cs
- RuntimeEnvironment.cs
- StructuralType.cs
- PropertyTabChangedEvent.cs
- EditingCoordinator.cs
- TreeNodeBinding.cs
- TraceListeners.cs
- StoreContentChangedEventArgs.cs
- LogicalTreeHelper.cs
- GlobalProxySelection.cs
- ClrProviderManifest.cs
- WebBrowserBase.cs
- HtmlTextArea.cs
- MaskInputRejectedEventArgs.cs
- MediaPlayer.cs
- TextBox.cs
- InertiaTranslationBehavior.cs
- TextEffect.cs
- MsmqPoisonMessageException.cs
- CapabilitiesUse.cs
- BufferedGraphicsManager.cs
- ButtonBaseAutomationPeer.cs
- TranslateTransform.cs
- DbConnectionStringCommon.cs
- AuthenticationManager.cs
- NegotiationTokenAuthenticatorStateCache.cs
- EncryptedHeaderXml.cs
- JobStaple.cs
- DesignSurfaceEvent.cs
- TableLayoutStyle.cs
- TripleDESCryptoServiceProvider.cs
- _RequestCacheProtocol.cs
- GuidelineSet.cs
- Camera.cs
- ActivityBuilder.cs
- ImageSourceConverter.cs
- PropertyGridDesigner.cs
- HybridObjectCache.cs