ASPCore 2.0ミドルウェアの現在の要求されたURLにアクセスする方法はありますか?ASPCore Middlewareの現在のURLは?
私が注入できるものはありますか?
app.Use(async (context, next) =>
{
//context.Request.Path
//context.Request.QueryString
...
await next.Invoke();
});
ASPCore 2.0ミドルウェアの現在の要求されたURLにアクセスする方法はありますか?ASPCore Middlewareの現在のURLは?
私が注入できるものはありますか?
app.Use(async (context, next) =>
{
//context.Request.Path
//context.Request.QueryString
...
await next.Invoke();
});
のHttpContextオブジェクトは、あなたのミドルウェアのInvoke
メソッドに渡されます。
あなたのミドルウェアは、あなたは次の方法ですべての必要な情報を得ることができます
//
// Summary:
// /// Gets the Microsoft.AspNetCore.Http.HttpRequest object for this request. ///
public abstract HttpRequest Request { get; }
を持っているHttpContext context
得ます。その上のRequest
プロパティにアクセスすることができます。
拡張メソッドまたは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);
}
Microsoft.AspNetCore.Http.Extensions
名前空間で定義されています。したがって、名前空間を含めるためにusingステートメントがあることを確認してください。
using Microsoft.AspNetCore.Http.Extensions;