0

ASPCore 2.0ミドルウェアの現在の要求されたURLにアクセスする方法はありますか?ASPCore Middlewareの現在のURLは?

私が注入できるものはありますか?

app.Use(async (context, next) => 
{ 
    //context.Request.Path 
    //context.Request.QueryString 
    ... 

    await next.Invoke(); 

}); 

答えて

0

のHttpContextオブジェクトは、あなたのミドルウェアのInvokeメソッドに渡されます。

1

あなたのミドルウェアは、あなたは次の方法ですべての必要な情報を得ることができます

// 
// 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; 
関連する問題