Webapi AuthortizationFilterAttribute: ActionArguments пустые ⇐ C#

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

Сообщение Anonymous »

Я внедряю авторизацию FilterAttribute для контроллера WebAPI, но у меня нет доступа к параметрам, которые передаются в контроллер: < /p>

В MVC4 это работает нормально: < /p>

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")
/// ...
}
}
< /code>

Но в webapi, я думаю, параметр должен быть в действии, но «парамет» здесь пуст: < /p>

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"]
/// ...
}
}
< /code>

Параметр, который передается в контроллер, доступен где -то еще? (Я подтвердил, что действие контроллера правильно получает значение идентификатора при удалении атрибута фильтра.)

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

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