У меня есть проект с контроллерами MVC и Web API. Он использует аутентификацию Windows. Однако я хочу защитить определенное действие веб-API с помощью настраиваемого атрибута. Я создал следующее только для настройки основного потока (в конечном итоге он проверит IP-адрес пользователя):
using System.Web;
using System.Web.Http;
using System.Web.Http.Filters;
namespace UoB.People.UserInterface.Mvc.Filters
{
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method)]
public class IPAuthorize : AuthorizationFilterAttribute
{
protected bool AuthorizeCore(HttpContextBase httpContext)
{
return true;
}
}
}
Я украсил свое действие веб-API вызовом этого атрибута. Проблема в том, что когда я запускаю свой код локально, код атрибута никогда не попадает. Действие есть. Это конкретное действие принадлежит контроллеру, который не использует проверку подлинности Windows.
Почему мой атрибут не вызывается? Его нужно где-то регистрировать? Есть ли конфликт, потому что мой проект содержит контроллеры MVC и Web API? Я где-то допустил простую ошибку?
Спасибо.