Table of Contents

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

next RequestDelegate

The delegate of the request pipeline to invoke.

setup IOptions<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

next RequestDelegate

The delegate of the request pipeline to invoke.

setup Action<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

string

Methods

InvokeAsync(HttpContext)

public override Task InvokeAsync(HttpContext context)

Parameters

context HttpContext

The context of the current request.

Returns

Task

A task that represents the execution of this middleware.