WebApi AuthorizationFilterAttribute: ActionArguments пусты.C#

Место общения программистов C#
Anonymous
WebApi AuthorizationFilterAttribute: ActionArguments пусты.

Сообщение Anonymous »

Я реализую атрибут AuthorizationFilterAttribute для контроллера WebApi, но, похоже, у меня нет доступа к параметрам, передаваемым в контроллер:

В MVC4 это работает нормально:

Код: Выделить всё

public class MyMVCController : Controller
{
[CanAccessMyResourceApi]
public MyViewModel Get(int id)
{
//...
}
}

public class CanAccessMyResourceMVCAttribute : CanAccessAttributeBase
{
public override void OnAuthorization(AuthorizationContext filterContext)
{
var param = filterContext.Controller.ValueProvider.GetValue("id")
/// ...
}
}
Но в WebAPI я думаю, что параметр должен быть в ActionArguments, но «param» здесь пуст:

Код: Выделить всё

public class MyWebApiController : ApiController
{
[CanAccessMyResourceWebApi]
public MyViewModel Get(int id)
{
//...
}

}

public class CanAccessMyResourceWebApiAttribute : AuthorizationFilterAttribute
{
public override void OnAuthorization(HttpActionContext filterContext)
{
// the debugger shows that ActionArguments is empty:
var param = filterContext.ActionArguments["id"]
/// ...
}
}
Доступен ли параметр, передаваемый в контроллер, где-то еще? (Я проверил, что действие контроллера правильно получает значение идентификатора, когда я удаляю атрибут фильтра.)

Подробнее здесь: https://stackoverflow.com/questions/147 ... -are-empty

Вернуться в «C#»