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