Web Api 我应该在哪里控制 Request Header 数据

Web Api and where should I contorol Request Header data

在Asp.net Web Api中,我想控制,请求"access token"键(在请求header中)是否有效。但我无法决定我应该在哪里实施这种控制。 ActionFilter 或控制器构造函数等

使用 DelegatingHandler 怎么样?它是 Web Api 管道的一部分,并在路由和控制器处理程序之前执行。

一个非常简单的访问令牌处理程序可能如下所示。您可以根据需要实施 IsValid。

public class ValidateTokenHandler : DelegatingHandler
{
    protected async override Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
    {

        var token = request.Headers.Authorization;
        if (token == null or !IsValid(token))
        {
            return new HttpResponseMessage(System.Net.HttpStatusCode.Unauthorized);
        }

        return await base.SendAsync(request, cancellationToken);
    }
}