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

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

Сообщение Anonymous »


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

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

публичный класс MyMVCController: Контроллер { [CanAccessMyResourceApi] общедоступный MyViewModel Get (int id) { //... } } открытый класс CanAccessMyResourceMVCAttribute: CanAccessAttributeBase { общедоступное переопределение void OnAuthorization (AuthorizationContext filterContext) { var param = filterContext.Controller.ValueProvider.GetValue("id") /// ... } } Но в WebAPI я думаю, что параметр должен быть в ActionArguments, но здесь «param» пуст:

публичный класс MyWebApiController: ApiController { [CanAccessMyResourceWebApi] общедоступный MyViewModel Get (int id) { //... } } открытый класс CanAccessMyResourceWebApiAttribute: AuthorizationFilterAttribute { общедоступное переопределение void OnAuthorization (HttpActionContext filterContext) { // отладчик показывает, что ActionArguments пуст: var param = filterContext.ActionArguments["id"] /// ... } } Доступен ли параметр, передаваемый в контроллер, где-то еще? (Я проверил, что действие контроллера правильно получает значение идентификатора, когда я удаляю атрибут фильтра.)
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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