1

現在の API (web api 2) プロジェクトには、多数のメッセージ ハンドラーが使用されています。一部はすべての要求に対して実行され (要求が https であり、要求が承認されたクライアントからのものであることを確認します)、特定のサーバーで実行されるものもあります。ルート (セキュリティ トークンの存在を確認します)。

ここで私の質問は、MVC 6 でこの機能を複製する方法です。私の現在の理解では、ミドルウェアを使用して行う必要がありますが、着信要求のヘッダーを検査できる例は見つかりませんでした。適切な http 応答コードを返します。

4

1 に答える 1

2

解決しようとしている問題を解決するには、ミドルウェアが間違いなく正しい選択肢です。ここで、ミドルウェアの使用/書き込みについて適切な説明を書きました: ASP.NET MVC 6 handling errors based on HTTP status code

ヘッダーを検査する方法に具体的に答えるには、次の例を示します。

public class Startup
{
    public void Configure(IApplicationBuilder app)
    {
        app.Use(async (context, next) =>
        {
            if (!string.Equals(context.Request.Headers["myheader"], "somevalue", StringComparison.Ordinal))
            {
                context.Response.StatusCode = 400;
                await context.Response.WriteAsync("Invalid headers");
            }
            else
            {
                await next();
            }
        });
    }
}
于 2015-06-26T21:59:43.517 に答える