Class RequestIdentifierMiddleware
- Namespace
- Cuemon.AspNetCore.Http.Headers
- Assembly
- Cuemon.AspNetCore.dll
Provides a Request ID middleware implementation for ASP.NET Core.
public class RequestIdentifierMiddleware : ConfigurableMiddleware<RequestIdentifierOptions>, IConfigurable<RequestIdentifierOptions>
- Inheritance
-
RequestIdentifierMiddleware
- Implements
- Inherited Members
Examples
The following example demonstrates how to register the in the ASP.NET Core pipeline to add a unique Request-ID header to every response.
using System;
using System.Threading.Tasks;
using Cuemon.Messaging;
using Microsoft.AspNetCore.Http;
using Microsoft.Extensions.Options;
namespace Cuemon.AspNetCore.Http.Headers;
public static class RequestIdentifierMiddlewareExample
{
public static async Task DemonstrateAsync()
{
var context = new DefaultHttpContext();
var options = Options.Create(new RequestIdentifierOptions
{
Token = new RequestToken("req-42")
});
var middleware = new RequestIdentifierMiddleware(
httpContext => httpContext.Response.WriteAsync("Hello"),
options);
await middleware.InvokeAsync(context);
Console.WriteLine(context.Response.Headers[options.Value.HeaderName].ToString());
}
}
Constructors
RequestIdentifierMiddleware(RequestDelegate, IOptions<RequestIdentifierOptions>)
Initializes a new instance of the RequestIdentifierMiddleware class.
public RequestIdentifierMiddleware(RequestDelegate next, IOptions<RequestIdentifierOptions> setup)
Parameters
nextRequestDelegateThe delegate of the request pipeline to invoke.
setupIOptions<RequestIdentifierOptions>The RequestIdentifierOptions which need to be configured.
RequestIdentifierMiddleware(RequestDelegate, Action<RequestIdentifierOptions>)
Initializes a new instance of the RequestIdentifierMiddleware class.
public RequestIdentifierMiddleware(RequestDelegate next, Action<RequestIdentifierOptions> setup)
Parameters
nextRequestDelegateThe delegate of the request pipeline to invoke.
setupAction<RequestIdentifierOptions>The RequestIdentifierOptions which need to be configured.
Fields
HttpContextItemsKey
The key from where the Request ID is stored throughout the request scope.
public const string HttpContextItemsKey = "Cuemon.AspNetCore.Http.Headers.RequestIdentifierMiddleware"
Field Value
Methods
InvokeAsync(HttpContext)
Executes the RequestIdentifierMiddleware.
public override Task InvokeAsync(HttpContext context)
Parameters
contextHttpContextThe context of the current request.
Returns
- Task
A task that represents the execution of this middleware.