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

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

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

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

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

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