5

Я разрабатываю службу 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 передаются назад и вперед.

ответ

0

Сегодня у меня возникла такая же проблема. Я изменил свойства проекта веб-API, анонимную аутентификацию, как включенную, и проверку подлинности Windows для отключения. и это работало как очарование!

Смежные вопросы