Existe-t-il un moyen d'accéder à l'URL demandée dans l'intergiciel ASPCore 2.0?URL actuelle dans ASPCore Middleware?
Y at-il quelque chose que je peux injecter?
Existe-t-il un moyen d'accéder à l'URL demandée dans l'intergiciel ASPCore 2.0?URL actuelle dans ASPCore Middleware?
Y at-il quelque chose que je peux injecter?
objet HttpContext sera transmis à la méthode Invoke
de votre middleware. Vous pouvez accéder à la propriété Request
à ce sujet.
Vous pouvez utiliser la méthode d'extension GetDisplayUrl
ou la méthode d'extension GetEncodedUrl
.
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);
}
Ces 2 méthodes d'extension sont définies dans l'espace de noms Microsoft.AspNetCore.Http.Extensions
. Assurez-vous donc que vous avez une instruction using pour inclure l'espace de noms
using Microsoft.AspNetCore.Http.Extensions;
middleware obtenir HttpContext context
qui a
//
// Summary:
// /// Gets the Microsoft.AspNetCore.Http.HttpRequest object for this request. ///
public abstract HttpRequest Request { get; }
Vous pouvez obtenir toutes les informations nécessaires de manière suivante:
app.Use(async (context, next) =>
{
//context.Request.Path
//context.Request.QueryString
...
await next.Invoke();
});