parent
648bdf706e
commit
a07ad16e4d
|
|
@ -373,9 +373,20 @@ namespace Microsoft.AspNetCore.Server.IIS.Core
|
|||
foreach (var headerPair in HttpResponseHeaders)
|
||||
{
|
||||
var headerValues = headerPair.Value;
|
||||
|
||||
if (headerPair.Value.Count == 0)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
var knownHeaderIndex = HttpApiTypes.HTTP_RESPONSE_HEADER_ID.IndexOfKnownHeader(headerPair.Key);
|
||||
for (var i = 0; i < headerValues.Count; i++)
|
||||
{
|
||||
if (string.IsNullOrEmpty(headerValues[i]))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
var isFirst = i == 0;
|
||||
var headerValueBytes = Encoding.UTF8.GetBytes(headerValues[i]);
|
||||
fixed (byte* pHeaderValue = headerValueBytes)
|
||||
|
|
|
|||
|
|
@ -22,6 +22,15 @@ namespace Microsoft.AspNetCore.Server.IIS.FunctionalTests.InProcess
|
|||
_fixture = fixture;
|
||||
}
|
||||
|
||||
[ConditionalFact]
|
||||
public async Task AddEmptyHeaderSkipped()
|
||||
{
|
||||
var response = await _fixture.Client.GetAsync("ResponseEmptyHeaders");
|
||||
var responseText = await response.Content.ReadAsStringAsync();
|
||||
Assert.Equal(HttpStatusCode.OK, response.StatusCode);
|
||||
Assert.False(response.Headers.TryGetValues("EmptyHeader", out var headerValues));
|
||||
}
|
||||
|
||||
[ConditionalFact]
|
||||
public async Task AddResponseHeaders_HeaderValuesAreSetCorrectly()
|
||||
{
|
||||
|
|
|
|||
|
|
@ -379,6 +379,12 @@ namespace TestSite
|
|||
await ctx.Response.WriteAsync("Request Complete");
|
||||
}
|
||||
|
||||
private async Task ResponseEmptyHeaders(HttpContext ctx)
|
||||
{
|
||||
ctx.Response.Headers["EmptyHeader"] = "";
|
||||
await ctx.Response.WriteAsync("EmptyHeaderShouldBeSkipped");
|
||||
}
|
||||
|
||||
private async Task ResponseInvalidOrdering(HttpContext ctx)
|
||||
{
|
||||
if (ctx.Request.Path.Equals("/SetStatusCodeAfterWrite"))
|
||||
|
|
|
|||
Loading…
Reference in New Issue