Is there a way I can access the current Requested URL in ASPCore 2.0 Middleware?
Is there something I can Inject?
Is there a way I can access the current Requested URL in ASPCore 2.0 Middleware?
Is there something I can Inject?
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;
Your middleware get HttpContext context
which has
//
// Summary:
// /// Gets the Microsoft.AspNetCore.Http.HttpRequest object for this request. ///
public abstract HttpRequest Request { get; }
So you may get all needed info in next way:
app.Use(async (context, next) =>
{
//context.Request.Path
//context.Request.QueryString
...
await next.Invoke();
});