У меня есть проект с контроллерами MVC и Web API. Он использует Windows Auth. Однако я хочу защитить конкретное действие веб-API с помощью настраиваемого атрибута. Я создал следующий раз, чтобы получить основной поток создать (в конечном счете, он будет проверять пользователь IP-адрес):Пользовательский атрибут Not Firing
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 Auth.
Почему мой атрибут не называется? Нужно ли его регистрировать? Есть ли конфликт, потому что мой проект содержит как MVC, так и Web API-контроллеры? Я сделал простую ошибку где-то?
Спасибо.
Нет, это зарегистрирует фильтр как глобальный, то есть вызовет его для всех запросов. – ondra