如何在 owin 中间件中读取自定义 header?

How to read a custom header in owin middleware?

我正在从 JavaScript 客户端向 ASP.Net Web API 发送自定义 HTTP header X-TYPE .

我在控制器 HttpContext 中看到这个 header,但是通过中间件内的 IOwinContext 访问请求 header 不提供自定义 header。

如何解决?

应该可以通过上下文中的请求访问 headers。

例如

public class MyCustomMiddleware : OwinMiddleware {

    public MyCustomMiddleware(OwinMiddleware next)
        : base(next) {

    }

    public override async Task Invoke(IOwinContext context) {

        var request = context.Request;
        var headers = request.Headers;
        var headerKey = "X-TYPE";
        // custome header
        if (headers.ContainsKey(headerKey)) {
            var xType = headers[headerKey];
            //...
        }

        // continue pipeline
        await Next.Invoke(context);

        //...
    }
}