Search code examples
asp.net-coreasp.net-core-mvcurl-routingasp.net-mvc-routing

Current URL in ASPCore Middleware?


Is there a way I can access the current Requested URL in ASPCore 2.0 Middleware?

Is there something I can Inject?


Solution

  • HttpContext object will be passed to the Invoke method of your middleware. You can access the Request property on that.

    You can use the GetDisplayUrl extension method or GetEncodedUrl extension method.

    public Task Invoke(HttpContext context)
    {
        var url1 =context.Request.GetDisplayUrl();
        var url2  = context.Request.GetEncodedUrl();       
    
    
        // Call the next delegate/middleware in the pipeline
        return this._next(context);
    }
    

    These 2 extension methods are defined in Microsoft.AspNetCore.Http.Extensions namespace. So make sure you have a using statement to include the namespace

    using Microsoft.AspNetCore.Http.Extensions;