Figured it out.
I simply applied a filter that checked the namespace of each controller. Since all my API controllers are in HSServer.Controllers.Api
and all the web controllers are in HSServer.Controllers.Web
this code in my FilterConfig.cs
worked like a charm.
public class FilterConfig
{
public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
filters.Add(new FrontendAuthorize());
filters.Add(new HandleErrorAttribute());
}
}
public class FrontendAuthorize : AuthorizeAttribute
{
public override void OnAuthorization(AuthorizationContext filterContext)
{
try
{
if (!filterContext.Controller.GetType().Namespace.StartsWith("HSServer.Controllers.Api"))
base.OnAuthorization(filterContext);
}
catch (NullReferenceException)
{
base.OnAuthorization(filterContext);
}
}
}