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
- ClassDataContract.cs
- FontFamilyIdentifier.cs
- DocumentAutomationPeer.cs
- XPathPatternParser.cs
- TypeName.cs
- RegexReplacement.cs
- ConstraintStruct.cs
- WebRequestModulesSection.cs
- DataGridViewCellLinkedList.cs
- DataTableReaderListener.cs
- ConstraintConverter.cs
- LinqDataSourceValidationException.cs
- RelationshipNavigation.cs
- SelectiveScrollingGrid.cs
- StylusPointProperties.cs
- AuthorizationPolicyTypeElementCollection.cs
- Screen.cs
- DataGridViewSelectedCellCollection.cs
- MouseEvent.cs
- ImageIndexConverter.cs
- ListControlConvertEventArgs.cs
- SchemaTableOptionalColumn.cs
- PreloadedPackages.cs
- QueryServiceConfigHandle.cs
- ResourceContainer.cs
- InheritablePropertyChangeInfo.cs
- SizeFConverter.cs
- Matrix3DStack.cs
- DataGridViewCellCancelEventArgs.cs
- SafeArchiveContext.cs
- NameValueSectionHandler.cs
- NameSpaceExtractor.cs
- MessagePropertyVariants.cs
- BezierSegment.cs
- GenericEnumerator.cs
- InvalidAsynchronousStateException.cs
- QueryOperationResponseOfT.cs
- WmpBitmapEncoder.cs
- DocobjHost.cs
- DateTimeFormatInfo.cs
- XmlSchemaParticle.cs
- exports.cs
- UriScheme.cs
- Misc.cs
- SamlConditions.cs
- OleDbEnumerator.cs
- RedistVersionInfo.cs
- HttpRequest.cs
- FunctionNode.cs
- BehaviorEditorPart.cs
- PolicyUnit.cs
- Axis.cs
- Identifier.cs
- ScrollViewerAutomationPeer.cs
- RtfToXamlLexer.cs
- SqlGatherProducedAliases.cs
- AssemblyAttributesGoHere.cs
- ChildTable.cs
- CodeDefaultValueExpression.cs
- PrintDocument.cs
- AnnotationComponentChooser.cs
- XmlDocumentType.cs
- ProfileSettingsCollection.cs
- EventArgs.cs
- MultiAsyncResult.cs
- AllowedAudienceUriElementCollection.cs
- FullTextState.cs
- XmlEntityReference.cs
- DataSourceView.cs
- Pens.cs
- PtsHost.cs
- DefaultValidator.cs
- SEHException.cs
- DesignerActionPanel.cs
- SqlParameter.cs
- XPathQueryGenerator.cs
- UrlAuthorizationModule.cs
- DateTimeUtil.cs
- PageAsyncTaskManager.cs
- TransformConverter.cs
- ContentPresenter.cs
- TableLayoutSettingsTypeConverter.cs
- SpoolingTask.cs
- ThemeDictionaryExtension.cs
- DiagnosticTraceRecords.cs
- TextBox.cs
- HMACRIPEMD160.cs
- BaseWebProxyFinder.cs
- GeneralTransformGroup.cs
- MembershipValidatePasswordEventArgs.cs
- OracleParameterCollection.cs
- TimeSpan.cs
- Constants.cs
- ProgressBar.cs
- CommunicationException.cs
- SyndicationElementExtensionCollection.cs
- AutoGeneratedField.cs
- ISAPIRuntime.cs
- ModelItemKeyValuePair.cs
- MessageFilterException.cs