Проверка подлинности Windows с проблемой NTLM

Я хотел бы создать веб-службу IIS (8.5.9600) с проверкой подлинности Windows, поставщиком которой является NTLM. Моя проблема в том, что я не могу войти на веб-сайт, используя свои учетные данные домена Windows, как я и ожидал. Нитер работает для меня. На данный момент я застрял из-за того, что не могу войти в систему, чтобы увидеть веб-сайт с веб-сервисом.

Версия Windows: Microsoft Windows Server 6.2

Я думаю, что я не сделал что-то не так с конфигурацией.

Я пытался войти в систему, используя шаблоны: ДОМЕН\имя пользователя имя пользователя

Конфигурация аутентификации на сайте: https://ibb.co/FBZXqym

Конфигурация ролей сайта: https://ibb.co/qDY1PWb

Конфигурация аутентификации приложения веб-сервиса: https://ibb.co/LvZdF45

Поставщики аутентификации Windows: https://ibb.co/FVcxXTm

Конфигурация ролей приложения веб-сервиса: https://ibb.co/xHBvq9d

Я также добавил полные разрешения для пользователя пула приложений IIS в приложение WebService.

Мой web.config:

<configuration>
<system.web>
  <compilation debug = "true" targetFramework = "4.7.2" />
  <httpRuntime targetFramework = "4.7.2" />
  <authentication mode = "Windows"/>
  <authorization>
    <allow users = "*" />
  </authorization>
</system.web>
<system.codedom>
  <compilers>
    <compiler language = "c#;cs;csharp" extension = ".cs" type = "Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel = "4" compilerOptions = "/langversion:default /nowarn:1659;1699;1701" />
    <compiler language = "vb;vbs;visualbasic;vbscript" extension = ".vb" type = "Microsoft.CodeDom.Providers.DotNetCompilerPlatform.VBCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel = "4" compilerOptions = "/langversion:default /nowarn:41008 /define:_MYTYPE=\&quot;Web\&quot; /optionInfer+" />
  </compilers>
</system.codedom>
<runtime>
  <assemblyBinding xmlns = "urn:schemas-microsoft-com:asm.v1">
    <dependentAssembly>
      <assemblyIdentity name = "Autofac" publicKeyToken = "17863af14b0044da" culture = "neutral" />
      <bindingRedirect oldVersion = "0.0.0.0-4.9.2.0" newVersion = "4.9.2.0" />
    </dependentAssembly>
  </assemblyBinding>
</runtime>

Я хотел бы войти в свое приложение веб-сервиса и увидеть стандартную страницу .asmx. В настоящее время я не могу.

«Моя проблема в том, что я не могу войти на веб-сайт, используя свои учетные данные домена Windows, как я ожидал». Это далеко не достаточно. Что говорят журналы IIS? support.microsoft.com/en-ca/help/943891/…

Lex Li 28.07.2019 00:06

У меня нет ответа, я проверял журнал ранее, и нет информации о том, что произошло во время процесса входа в систему. Чтобы быть более точным, я проверил журнал из информации о регистрации в разделе IIS.

Karol Kot 28.07.2019 10:47

В данный момент самое главное, что вы должны узнать, — это то, что такое проверка подлинности Windows (NTLM) и что следует ожидать в файлах журнала IIS, когда все правильно или неправильно. Затем вы можете описать реальную проблему более подробно, чем «У меня нет ответа». Такие инструменты, как Fiddler и Wireshark, также могут помочь вам глубже изучить уровень сетевых пакетов. Прежде чем вы это поймете, мало кто может помочь.

Lex Li 28.07.2019 15:12
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
3
713
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Вам нужен раздел system.webServer в вашем web.config, чтобы включить аутентификацию Windows, но также отключить анонимную аутентификацию:

<system.webServer>
   <security>
      <authentication>
         <anonymousAuthentication enabled = "false" />
         <windowsAuthentication enabled = "true" />
      </authentication>
   </security>
</system.webServer>

Подробнее здесь: https://docs.microsoft.com/en-us/iis/configuration/system.webserver/security/authentication/windowsauthentication/

Вы упомянули веб-сайт и веб-службу, но не сказали, какова связь между ними (пользователь входит в систему на веб-сайте, а веб-сайт вызывает веб-службу?). Поэтому, если у вас есть другие проблемы с этим, вам придется предоставить больше информации о том, что вы делаете.

Веб-сайт доступен для всех, я включил для него анонимную аутентификацию. WebService должен быть доступен только для тех, кто знает доменный логин и пароль. Я добавил приложение, щелкнув правой кнопкой мыши на своем веб-сайте в IIS, а затем «Добавить приложение». К сожалению, это все еще не работает, даже если я добавил конфигурацию из документов Microsoft. Есть ли способ увидеть, что случилось после того, как я передам свои учетные данные? Я пытаюсь получить журналы, но я их нигде не вижу.

Karol Kot 28.07.2019 11:26

Вы добавили приведенный выше код в файл web.config вашего веб-сервиса?

Gabriel Luci 28.07.2019 14:15

Да, есть, тогда мне нужно изменить некоторые настройки в applicationhost.config. я имею в виду переключить WindowsAuthentication, чтобы разрешить

Karol Kot 28.07.2019 14:56

Вы можете использовать приведенный ниже код в файле приложения web.config, чтобы разрешить только пользователю домена и запретить другим пользователям:

<system.webServer>
  ...
  <security>
    <authorization>
      <add accessType = "Deny" users = "?" />
      <add accessType = "Allow" roles = "YOUR_DOMAIN\Domain Users" />
    </authorization>
  </security>
  ...
</system.webServer>

Вы также можете разрешить более одного пользователя домена.

Для получения более подробной информации вы можете следовать следующей статье:

Авторизация безопасности

Ответ принят как подходящий

Все, что мне нужно было сделать, это перезапустить весь сервер приложений IIS. После этого он начал работать правильно, это означает, что мне нужно войти в приложение.

Спасибо за вашу помощь!

Другие вопросы по теме