SQL Server и проверка подлинности Windows в IIS7 - PullRequest
8 голосов
/ 04 декабря 2009

Я пытаюсь заставить веб-сайт ASP.NET работать в Vista (IIS7), используя SQL Server и проверку подлинности Windows. Независимо от того, что я делаю, когда я подключаюсь к базе данных, я получаю исключение:

    SqlException was unhandled
    Login failed for user 'MyDomain\MachineName$'.

Кажется, не имеет значения, какие настройки я применяю, IIS7 не может пройти через учетные данные для входа в Windows.

Дополнительные детали:

  • И SQL Server, и мой локальный компьютер находятся в ActiveDirectory
  • Vista Enterprise, IIS7
  • SQL Server 2005
  • Анонимная аутентификация отключена, аутентификация Windows включена
  • Олицетворение вкл / выкл не имеет значения
  • Все удостоверения (NetworkService, LocalSystem и т. Д.) Дают одинаковый результат
  • Классический и интегрированный конвейеры дают одинаковый результат

Помощь!

Ответы [ 4 ]

7 голосов
/ 04 декабря 2009

Олицетворение вкл / выкл имеет все значение при правильной настройке. То, что вы хотите, называется «ограниченное делегирование», и вам необходимо настроить IIS и ASP для него:

1 голос
/ 04 декабря 2009

По умолчанию серверу IIS запрещен impersonate доступ к серверу SQL. Есть MSDN статья о том, как его настроить. Процесс конфигурации сложен и подвержен ошибкам.

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

В дополнение к тому, что обычные администраторы не развертываются, олицетворение также запрещает пользователям совместно использовать свои соединения в пуле соединений SQL. Это приводит к очень заметному снижению производительности даже для небольших (более 5 пользователей) веб-сайтов.

0 голосов
/ 04 декабря 2009

Содержит ли строка подключения Integrated Security=SSPI?

Вы также переключили контекст asp.net на пользователя домена?

Вот статья MSDN на эту тему

http://msdn.microsoft.com/en-us/library/2xzyzb0f.aspx

0 голосов
/ 04 декабря 2009

Вы пытались создать новую учетную запись пользователя для своего приложения, предоставить ей соответствующие права на Sql Server, а затем настроить пул приложений для запуска под этой новой учетной записью? Это то, что я обычно делаю, и это работает. Я не запускаю свое приложение под NetworkService, LocalSystem или другими встроенными учетными записями.

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