Я пытаюсь реализовать настраиваемый атрибут авторизации на своих контроллерах веб-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
не работал, это имело бы больший смысл. Я что-то упускаю? Это ожидаемое поведение или ошибка в бета-версии?