0

我想实现一些自定义的身份验证逻辑,所以我写了一个身份验证过滤器。但是由于某种原因, AuthenticateAsync 从未被调用,这使得该属性根本没有用。

我在一个正常的 web api 项目中测试了相同的代码。任何想法为什么会发生这种情况?我该如何调试才能找到这种情况的根本原因?我在 CallStack 中也一无所获。

这是控制器功能:

    [HttpPost]
    [CustomAuthentication]
    public async Task<JsonResult> TestFunc(UserAccount user)
    {
        //controller logic
        return Json("blah");
    }

这是身份验证过滤器:

public class CustomAuthenticationAttribute : Attribute, IAuthenticationFilter
{    
    public CustomAuthenticationAttribute()
    {
        var tt = "does it get in?";
    }

    public Task AuthenticateAsync(HttpAuthenticationContext context, CancellationToken cancellationToken)
    {
        var req = context.Request; // never being called
        //xxx authentication logic
        return Task.FromResult(0);                                          
    }                                                                       
 }
4

0 回答 0