Пользовательский атрибут авторизации MVC для веб-API ASP.NET

Я пытаюсь реализовать настраиваемый атрибут авторизации на своих контроллерах веб-API, но обнаружил неожиданное поведение.

     <Authorize(Users:="myUser")>
     Public Function GetTodoItems() As IQueryable(Of TodoItem)

Приведенный выше код работает очень хорошо: он позволяет «myUser» получать элементы, бот никому не разрешен доступ. Однако, когда я пробую тот же подход с моей настраиваемой авторизацией, вся проверка пропускается, и любой пользователь может получить доступ к ресурсу. Ни AuthorizeCore , ни переопределенные методы OnAuthorization в моем производном классе не вызываются.

     <MyAuth(Users:="myUser")>
     Public Function GetTodoItems() As IQueryable(Of TodoItem)

Производный класс наследуется от System.Web.Mvc.AuthorizeAttribute , и проект развернут в IIS с аутентификацией Windows и включенным олицетворением и Анонимная аутентификация отключена.

Если я добавлю такую ​​же настраиваемую авторизацию к контроллеру MVC, то все заработает. Но на контроллерах API ничего. Если бы атрибут Authorize не работал, это имело бы больший смысл. Я что-то упускаю? Это ожидаемое поведение или ошибка в бета-версии?

14
задан Szilard Muzsi 28 February 2012 в 13:42
поделиться