Я разрабатываю службу WebAPI, которая должна будет использовать проверку подлинности Windows на клиентских серверах AD. Я пытаюсь проверить это локально и постоянно получаю ошибку 401, а затем сервер просто не разрешает запрос вообще из-за недопустимых учетных данных. Я выполняю локальные тесты в локальном IIS 8.5 (устанавливается в окне Windows 8.1). В IIS я включена проверка подлинности Windows со следующими поставщиками:WebAPI с аутентификацией Windows возвращает 401 неавторизованных
- NTLM
- Обсуди
- Обсуди: Kerberos
Кроме того, я аутентификация отключена в режиме ядра, так как IIS орет на меня, когда Я включаю как режим ядра, так и переговоры: kerberos. Расширенная защита также отключена.
В моей конфигурации, у меня есть мои правила авторизации установить, чтобы разрешить всем пользователям, а также режим проверки подлинности установлен на «нет»:
<system.web>
<authentication mode="None" />
<compilation debug="true" targetFramework="4.5" />
<httpRuntime targetFramework="4.5" />
</system.web>
Тогда в контроллерах в WebAPI, я помещаю в [Authorize]
атрибута на всех контроллерах:
[Authorize]
[RoutePrefix("api/Workorder")]
public class WorkorderController : ApiController
{
...
}
Может кто-то объяснить, почему я получаю 401 вызов каждому времени я пытаюсь получить доступ к методам API?
Заранее благодарен!
EDIT: Я изменил
<authentication mode="None" />
в Windows, и это не помогло. Я также исключил
NTLM от моих провайдеров проверки подлинности Windows, поскольку моя машина не находится в домене, поэтому NTLM не будет работать.
Я также наблюдал поток запроса через стельку, и я смог увидеть серию из 4 запросов, каждый пытается проверить подлинность с помощью Обсудите метод и, как представляется, билеты Kerberos передаются назад и вперед.