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