2013-03-07 2 views
3

Я пытаюсь использовать фильтр авторизации стиля MVC как атрибут метода действия Get() для контроллера веб-API OData, но фильтр авторизации игнорируется. Можно ли разрешать атрибуты с использованием EntitySetController или ODataController?Web API OData Controller и атрибут авторизации

public class MyEntityController : EntitySetController<MyEntity, int> 
{ 
    [CustomAuthorizeAttribute(AccessPermission.View)] 
    [Queryable(AllowedQueryOptions = AllowedQueryOptions.All)] 
    public override IQueryable<MyEntity> Get() 
    { 
     // Contents omitted. 
    } 
} 

public class CustomAuthorizeAttribute : AuthorizeAttribute 
{ 
    public AccessPermission RequiredPermission { get; set; } 

    public CustomAuthorizeAttribute(AccessPermission requiredPermission) 
    { 
     RequiredPermission = requiredPermission; 
    } 
} 

ответ

4

Да, они могут, но пользовательские атрибуты Auth должны наследовать от System.Web.Http.AuthorizeAttribute

попробовать эту реализацию:

public class CustomAuthorizeAttribute : System.Web.Http.AuthorizeAttribute 
{ 
    public AccessPermission RequiredPermission { get; set; } 

    public CustomAuthorizeAttribute(AccessPermission requiredPermission) 
    { 
     RequiredPermission = requiredPermission; 
    } 
} 
Смежные вопросы