自定义授权属性无效 asp.net

Custom Authorize Attribute not working asp.net

在我的 C# 应用程序中,我正在添加这样的自定义属性

public class CheckLogIn : AuthorizeAttribute
{
    protected override bool AuthorizeCore(HttpContextBase httpContext)
    {
        if (!httpContext.Request.IsAuthenticated)
            return false;
        return (Auth.UserLoggedIn || Auth.AdminLoggedIn);
    }
}

我是这样称呼这个属性的

[CheckLogIn]
public dynamic Create(String projectName, String organizationId)
{
    Project pro = Project.Create(organizationId, projectName).Save();

    return new
    {
        organizationId = pro.OrganizationId,
        name = pro.Name,
        id = pro.Id
    };
}

未调用 AuthorizeCore。我在那里有一个断点,但它似乎永远不会被调用。我在这里遗漏了什么吗?

我试过从一个正常的控制器调用 [CheckLogIn] 它可以工作,从一个 api 控制器它不能。

MVC 的 System.Web.Http.AuthorizeAttribute for WebApi is a different type than the System.Web.Mvc.AuthorizeAttribute

它不能与 WebApi 一起工作的原因是因为 WebApi 不知道 MVC 类型。为此,您需要创建一个继承 System.Web.Http.AuthorizeAttribute 的类型。