Вопрос

У меня есть веб-сайт, который корректно работает под IIS 6.0:Он аутентифицирует пользователей с учетными данными Windows, а затем при обращении к службе, которая обращается к БД, передает учетные данные.

В IIS 7.0 те же параметры конфигурации не передают учетные данные, и БД получает сообщение NT AUTHORITY\ANONYMOUS.

Есть ли что-то, что мне не хватает?Я отключил АНОНИМНЫЙ доступ на своем веб-сайте IIS 7.0, но не могу заставить его работать.

Это настройки, которые я использую как в IIS 6.0, так и в 7.0:

<authentication mode="Windows">
<identity impersonate="true">

Что изменилось с 6.0 на 7.0?

Это было полезно?

Решение

Между IIS7 и IIS6.0 произошли изменения.Я нашел для вас одну запись в блоге, которая может вам действительно помочь (нажмите здесь, чтобы увидеть это).

Вы запускаете свое приложение в интегрированном режиме или в классическом режиме?Судя по тому, что я видел, присвоение атрибуту Impersonate значения true должно отобразить ошибку 500 со следующим сообщением об ошибке:

Внутренняя ошибка сервера.Это http error 500.19:Запрашиваемая страница не может быть получена, потому что связанные данные конфигурации для страницы недействительны.

Предлагается следующий обходной путь:

Обходной путь:

1) Если ваше приложение не полагается на выдачу запрашиваемого пользователя на этапах BeginRequest и AuthenticAteRequest (единственные этапы, где подражание невозможна в интегрированном режиме), проигнорируйте эту ошибку, добавив следующее в web.config вашего приложения: Config:

<validation validateIntegratedModeConfiguration="false"

/>

2) Если ваше приложение полагается на олицетворение в BeartRequest и AuthenticAteRequest, или вы не уверены, перейдите в классический режим.

Я надеялся, что это было полезно для понимания того, как сейчас работает IIS 7.0.

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

Настроен ли ваш сервер IIS так, чтобы ему доверял делегирование со стороны SQLServer?Я уже сталкивался с этим раньше при использовании WebDAV, где нам приходилось иметь сервер с IIS, которому файловый сервер доверял, для аутентификации от имени файлового сервера.

Интересный...У меня противоположная проблема - Не имея возможности чтобы пройти аутентификацию из браузера клиента через веб-сервер в базу данных в большой корпоративной сети через брандмауэры.

Я также считаю, что аутентификация «сквозного пользователя» в базе данных — плохая идея и потенциальный риск для безопасности.Ничто не мешает конечному пользователю загрузить SQL-запрос и подключиться напрямую к вашей базе данных, поэтому вам лучше заблокировать вашу схему!

@Esteban - Уточнил мой не очень полезно помочь вам отвечать.

Обычно, если вы выполняете двойную аутентификацию таким образом, обычно используется Kerberos, если только первая аутентификация не является базовой.

Я бы проверил аутентификацию на серверах IIS 6 и убедился, что она такая же и на IIS 7.

Если в поле IIS 6 установлено значение «Встроенная Windows», вам необходимо проверить настройки Kerberos — имена участников-служб, делегирование и т. д.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top