Я хотел бы создать веб-службу 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=\"Web\" /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. В настоящее время я не могу.
У меня нет ответа, я проверял журнал ранее, и нет информации о том, что произошло во время процесса входа в систему. Чтобы быть более точным, я проверил журнал из информации о регистрации в разделе IIS.
В данный момент самое главное, что вы должны узнать, — это то, что такое проверка подлинности Windows (NTLM) и что следует ожидать в файлах журнала IIS, когда все правильно или неправильно. Затем вы можете описать реальную проблему более подробно, чем «У меня нет ответа». Такие инструменты, как Fiddler и Wireshark, также могут помочь вам глубже изучить уровень сетевых пакетов. Прежде чем вы это поймете, мало кто может помочь.





Вам нужен раздел 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. Есть ли способ увидеть, что случилось после того, как я передам свои учетные данные? Я пытаюсь получить журналы, но я их нигде не вижу.
Вы добавили приведенный выше код в файл web.config вашего веб-сервиса?
Да, есть, тогда мне нужно изменить некоторые настройки в applicationhost.config. я имею в виду переключить WindowsAuthentication, чтобы разрешить
Вы можете использовать приведенный ниже код в файле приложения web.config, чтобы разрешить только пользователю домена и запретить другим пользователям:
<system.webServer>
...
<security>
<authorization>
<add accessType = "Deny" users = "?" />
<add accessType = "Allow" roles = "YOUR_DOMAIN\Domain Users" />
</authorization>
</security>
...
</system.webServer>
Вы также можете разрешить более одного пользователя домена.
Для получения более подробной информации вы можете следовать следующей статье:
Все, что мне нужно было сделать, это перезапустить весь сервер приложений IIS. После этого он начал работать правильно, это означает, что мне нужно войти в приложение.
Спасибо за вашу помощь!
«Моя проблема в том, что я не могу войти на веб-сайт, используя свои учетные данные домена Windows, как я ожидал». Это далеко не достаточно. Что говорят журналы IIS? support.microsoft.com/en-ca/help/943891/…