自定义授权属性在asp.net中无法正常工作

5
在我的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 控制器中却不能。


你在应用程序启动时注册它了吗? - Andrei
不过我已经尝试从普通控制器调用[CheckLogIn],它可以工作,但从 API 控制器中调用就不行了。 - mohsinali1317
1个回答

18

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接