Конечная точка токена не разрешается против типа контроллера
-
20-12-2019 - |
Вопрос
Я пытался привести к примерам, как настроить веб-API для использования жетонов носителей с идентичностью 2.0 ASP.NET 2.0, и я столкнулся с ICCUP. После этого учебника http://www.asp. Net / Web-API / Обзор / Обзор / Безопасность / Индивидуальные учетные записи в Интернет-API он утверждает, что я должен быть в состоянии опубликовать на http:// {Servername} / Token, чтобы получить токен носителя. Когда я делаю это, я получаю исключение для замка Виндзор, когда он пытается разрешить токен как контроллер.
Что я пытаюсь выполнить в целом, - войти в использование с использованием консервированного контроллера учетной записи, а затем извлекать токен. Я пытаюсь использовать как печенье и токены на носителях.
- Это правильный подход к использованию контроллера учетной записи по умолчанию для аутентификации?
- Если это не правильный подход, я должен только внимательно следовать в руководстве и иметь вход пользователя на контроллер API?
- Что мне нужно сделать для моей конфигурации IOC, чтобы убедиться, что мои конечные точки разрешили?
Решение
Авторизация в webapi должна быть обработана в сообщении, а не на уровне контроллера.
Вы должны создать сообщение, отвечающую, чтобы проверить токен OAUTH Berarer: это обработчик сообщений может (должен) разрешен на ваш IOC и, чем конфигурирован в конвейере webapi.
public static void RegisterGlobalHandlers(HttpConfiguration config, IWindsorContainer container)
{
var authorizationMessageHandler = container.Resolve<AuthorizationMessageHandler>();
config.MessageHandlers.Add(authorizationMessageHandler);
}
.
dotnetOpenoauth - отличное место для начала: посмотрите на Реализация образца образец / обработчик сообщений MVC5 .