-
Notifications
You must be signed in to change notification settings - Fork 10.5k
Open
Labels
api-suggestionEarly API idea and discussion, it is NOT ready for implementationEarly API idea and discussion, it is NOT ready for implementationarea-middlewareIncludes: URL rewrite, redirect, response cache/compression, session, and other general middlewaresIncludes: URL rewrite, redirect, response cache/compression, session, and other general middlewares
Description
Background and Motivation
Consider following code:
builder.Services.AddHttpClient()
.AddHeaderPropagation(options =>
{
options.Headers.Add("Authorization", context =>
{
// await here
var access_token = context.HttpContext.GetTokenAsync("access_token").GetAwaiter().GetResult();
return access_token ?? StringValues.Empty;
});
});
Proposed API
Add property AsyncValueFilter
for HeaderPropagationEntry.
namespace Microsoft.AspNetCore.HeaderPropagation;
public class HeaderPropagationEntry
{
+ public Func<HeaderPropagationContext, Task<StringValues>>? AsyncValueFilter { get; }
}
public sealed class HeaderPropagationEntryCollection : Collection<HeaderPropagationEntry>
{
+ public void Add(string headerName, Func<HeaderPropagationContext, Task<StringValues>> valueFilter);
}
Usage Examples
builder.Services.AddHttpClient()
.AddHeaderPropagation(options =>
{
options.Headers.Add("Authorization", async context =>
{
// await here
var access_token = await context.HttpContext.GetTokenAsync("access_token");
return access_token ?? StringValues.Empty;
});
});
Metadata
Metadata
Assignees
Labels
api-suggestionEarly API idea and discussion, it is NOT ready for implementationEarly API idea and discussion, it is NOT ready for implementationarea-middlewareIncludes: URL rewrite, redirect, response cache/compression, session, and other general middlewaresIncludes: URL rewrite, redirect, response cache/compression, session, and other general middlewares