Подтвердить что ты не робот

Использование проверки подлинности Windows в ASP.NET

Я пытаюсь использовать проверку подлинности Windows в своем приложении ASP.NET. Всякий раз, когда я пытаюсь просмотреть приложение, он отправляет меня на страницу входа. Как я могу заставить его работать без необходимости входа в систему через браузер?

web.config

  <system.web>
    <authentication mode="Windows"></authentication>
    <anonymousIdentification enabled="false"/>
    <authorization>
      <deny users="?" />
      <allow users="*" />
    </authorization>
    <customErrors mode="Off"></customErrors>
    <identity impersonate="true"></identity>
    <compilation debug="true" targetFramework="4.0" />
    <httpRuntime />
  </system.web>

ошибка после обновления IIS Express

Most likely causes:
No authentication protocol (including anonymous) is selected in IIS.
Only integrated authentication is enabled, and a client browser was used that does not support integrated authentication.
Integrated authentication is enabled and the request was sent through a proxy that changed the authentication headers before they reach the Web server.
The Web server is not configured for anonymous access and a required authorization header was not received.
The "configuration/system.webServer/authorization" configuration section may be explicitly denying the user access.

ApplicationHost.config

<authentication>
  <anonymousAuthentication enabled="false" />
  <basicAuthentication enabled="false" />
  <clientCertificateMappingAuthentication enabled="false" />
  <digestAuthentication enabled="false" />
  <iisClientCertificateMappingAuthentication enabled="false">
  </iisClientCertificateMappingAuthentication>

  <windowsAuthentication enabled="true">
    <providers>
      <add value="Negotiate" />
      <add value="NTLM" />
    </providers>
  </windowsAuthentication>
</authentication>
4b9b3361

Ответ 1

Мне удалось заставить его работать, удалив поставщика переговоров.

  <windowsAuthentication enabled="true">
    <providers>
      <add value="NTLM" />
    </providers>
  </windowsAuthentication>

Ответ 2

Мы используем проверку подлинности Windows почти для всех наших приложений для интрасети, включая SharePoint. Сотрудники должны войти в систему, если их браузер автоматически не отправит свои учетные данные Windows на сайт.

В IE это зависит от конфигурации браузера. Я думаю, что есть также способы настроить Chrome и Firefox для автоматической отправки Windows-входа. Я думаю, что Chrome будет следить за настройками Windows Internet (на клиенте), как IE. Попробуйте установить параметры проверки подлинности пользователя на "Автоматический вход с текущим именем пользователя и паролем".

Ниже приведен снимок экрана для иллюстрации, где это находится.

введите описание изображения здесь

Также обратите внимание, что это связано с тем, что браузер пользователя отправляет токен Windows в приложение. Приложение должно понимать и доверять источнику этого токена, и это будет работать с поддержкой "домена", в котором находятся как пользователь, так и приложение. Я думаю, что он будет работать на одной машине (пока вы отлаживаете), но если вы хотите, чтобы это работало на нескольких компьютерах в сети, вам нужно задуматься о создании домена. Типичным способом создания домена является Active Directory.

Сообщите мне.

Ответ 3

Аутентификация Windows с помощью IISExpress

Обновите свой web.config Убедитесь, что ваш файл web.config обеспечивает аутентификацию Windows, а также отменяет анонимную аутентификацию. HttpContext.Current.User.Identity.Name будет пустым, если приложение попадет на анонимную проверку подлинности. Ваша конфигурация должна выглядеть примерно так:

<authentication mode="Windows" />
<authorization>
    <deny users="?"/>
</authorization>

Ошибка 401.2 Неавторизованный Иногда вы можете получить 401.2 Unauthorized: Ошибка входа из системы из-за ошибки конфигурации сервера. Если вы это сделаете, убедитесь, что у вас есть разрешение на просмотр этого каталога или страницы на основе предоставленных вами учетных данных. Также убедитесь, что на веб-сервере активированы методы проверки подлинности.

Обновление applicationhost.config Вы также можете обнаружить, что вам нужно обновить файл applicationhost.config IISExpress (не волнуйтесь - я тоже этого не знал). Это, по сути, файловая версия инструмента настройки IIS, где вы можете настроить сам веб-сервер. Поиск файла applicationhost.config может быть сложным. Это может быть в:

% USERPROFILE%\Документы\iisexpress\Config\ApplicationHost.config

или

% userprofile%\мои документы \iisexpress\config\applicationhost.config

Как только вы его найдете, обновите следующие строки (обращая особое внимание на enabled = true):

<windowsAuthentication enabled="true">
    <providers>
        <add value="Negotiate" />
        <add value="NTLM" />
    </providers>
</windowsAuthentication>

Это статья

Ответ 4

  • Откройте IIS (Windows + R 'inetmgr')
  • Выберите IIS Server (Root Node)
  • Двойной щелчок - "Аутентификация"
  • Аутентификация Windows. Щелкните правой кнопкой мыши и выберите "Включить"
  • Аутентификация форм - щелкните правой кнопкой мыши и выберите "Отключить"
  • Перезапустите сервер IIS