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
Ответить

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

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

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

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

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