Проверка подлинности Windows IIS и SQL Server в приложении ASP.NET - PullRequest
2 голосов
/ 28 апреля 2011

У меня настроено 3 виртуальных машины:

  • (A) Active Directory в Windows 2008 R2.
  • (B) Microsoft SQL Server 2008 Express в Windows XP SP3.
  • (C) IIS в Windows XP с пакетом обновления 3 (SP3).

Сервер SQL и IIS объединены в домене, а хост-компьютер - нет.Я также создал администратора домена с правами администратора в SQL Server.Я могу пинговать / получать доступ ко всем виртуальным машинам друг от друга и с ПК, на котором размещены виртуальные машины.Я могу без проблем подключиться к виртуальной машине SQL Server, используя проверку подлинности Windows в SQL Server Management Studio внутри виртуальной машины IIS.

Я создал очень простое приложение в приложении ASP.Net, размещенное на виртуальной машине IIS, которое открывает базу данных.соединение в виртуальной машине SQL Server.Я настроил веб-сайт для проверки подлинности через Windows Authentication only .Вот моя строка подключения:

Server=DATABASE;Database=HAP;Trusted_Connection=True;

Вот код:

SqlConnection connection = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString);

using(connection) {
    connection.Open();
}

Я также установил " Доверяйте этот компьютер для делегирования любой службе (только Kerberos)"в AD для виртуальной машины IIS.

Выдает " Ошибка входа в систему. Вход в систему из ненадежного домена и не может использоваться с аутентификацией Windows. Исключение".Если я изменю строку подключения на это:

Server=DATABASE;Database=HAP;User ID=sa;Password=connectsql;

, приложение работает нормально.

Мне действительно нужно, чтобы оно проходило аутентификацию через Аутентификация Windows и , а не через проверку подлинности SQL Server.

Примечание: IIS запрашивает у пользователя учетные данные Windows.

1 Ответ

1 голос
/ 28 апреля 2011

Мне неясно, намереваетесь ли вы аутентифицировать приложение во время входа в систему или просто хотите, чтобы рабочий процесс asp.net проходил аутентификацию через AD.

Если вы хотите, чтобы пользовательавторизуйтесь с их учетной записью, затем вам нужно установить «imperasonate = true» в веб-конфигурации.Это повлечет за собой снижение производительности, но это может быть нормально.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...