In my c# app I am adding a custom attribute like this
public class CheckLogIn : AuthorizeAttribute
{
    protected override bool AuthorizeCore(HttpContextBase httpContext)
    {
        if (!httpContext.Request.IsAuthenticated)
            return false;
        return (Auth.UserLoggedIn || Auth.AdminLoggedIn);
    }
}
I am calling this attribute like this
[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
    };
}
The AuthorizeCore is not being called. I have a break point there but it seems like it never gets called. Am I missing something here?
I have tried calling [CheckLogIn] from a regular controller it works, from an api controller it doesn't.
The System.Web.Http.AuthorizeAttribute for WebApi is a different type than the System.Web.Mvc.AuthorizeAttribute for MVC.
The reason why it doesn't work with WebApi is because WebApi doesn't know about MVC types. You need to create a type that inherits System.Web.Http.AuthorizeAttribute for that purpose.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With