Настройка безопасности ASP.NET, IIS Windows Auth и SQL Server Access - PullRequest
0 голосов
/ 11 февраля 2011

У меня проблемы с настройкой моего ASP.NET web.config и моего веб-сайта IIS для получения нужной настройки.Вот что я хочу получить в конце дня:

  • Приложение подключается к SQL Server с использованием определенного NT ID
  • NT ID, используемый для подключения к SQL Server, отсутствует вweb.config.Или, по крайней мере, его пароль не является.
  • Я могу использовать HttpContext.Current.User.Identity.Name (или каким-либо другим способом), чтобы получить идентификатор NT пользователя real , который являетсяподключение к приложению.

Если я настраиваю ASP.NET 3.5 в Visual Studio 2008, это в основном все работает локально.Но когда я внедряюсь в IIS, я могу успешно получить первые две марки, но не могу получить третью.Identity.Name является нулем.Я сейчас развернул его так, что олицетворению присвоено значение true в файле web.config, а в IIS разрешен анонимный доступ, а для анонимного пользователя задано значение NT ID, которое я хочу подключить к SQL Server.

Строка подключения, которую я использую для подключения к SQL Server, выглядит следующим образом:

Server=[My Server];Database=[My DB];Trusted_Connection=Yes;

Я попытался установить авторизацию, которая была предложена в других сообщениях, но это просто заставляет Internet Explorer всплывающее окно входа в систему.

Это окно Windows Server 2003 с IIS 6.0.

Это вполне может быть глупый вопрос и / или дублирующий вопрос.Но я много занимался поиском, пробами и ошибками и, похоже, не могу получить волшебные настройки.

Ответы [ 2 ]

0 голосов
/ 11 февраля 2011

Это называется Double-Hop Problem и запрещает пересылку учетных данных пользователя третьим лицам. Это происходит, когда они переходят с одного компьютера на другой сайт (первый переход) и пересылают учетные данные на третий компьютер (второй переход).

Проблема не появится, если вы разместите IIS и SQL Server на одном компьютере.

Существует множество технических подробностей, опубликованных по этому вопросу на Как использовать пространство имен System.DirectoryServices в ASP.NET , которое объясняет проблему двойного перехода, а также первичные и вторичные токены.

0 голосов
/ 11 февраля 2011

По умолчанию учетная запись компьютера \ ASPNET или учетная запись NETWORK_SERVICE, в зависимости от используемой версии IIS (я не уверен, что IIS 7 использует NETWORK_SERVICE, а 6 -).Если вам нужна другая учетная запись, олицетворение применяется к файлу конфигурации (как имени пользователя, так и пароля) для запуска учетной записи.Теперь вы можете зашифровать эту часть раздела конфигурации с помощью утилиты aspnet_regiis.Но вы должны предоставить учетную запись.Я не думаю, что вы можете обойтись без этого, о чем я знаю ... если только это не может быть сделано через IIS.

HTH.

...