Implementing Message Handlers in MVC 6



我目前有一个API(web API 2)项目,该项目使用了许多消息处理程序,其中一些针对每个请求运行(检查以确保请求是https,并且请求来自授权客户端),还有一些在特定路由上运行(检查是否存在安全令牌)。

现在我的问题是如何在MVC 6中复制此功能,我目前的理解是应该通过使用中间件来完成,但我还没有找到一个允许我检查传入请求的标头的示例,如果它们不是应该的,则返回适当的http响应代码。

中间件绝对是解决您想要解决的问题的正确选择。我在这里写了一篇关于使用/编写中间件的不错的解释:ASP.NET MVC 6处理基于HTTP状态代码的错误

为了具体回答如何检查标题,这里有一个例子:

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();
            }
        });
    }
}

相关内容

  • 没有找到相关文章

最新更新