Как разрешить анонимный доступ к моему сайту IIS, но использовать проверку подлинности Windows для подключения к SQL Server? - PullRequest
4 голосов
/ 06 января 2011

Что я хочу сделать, это:

  • Разрешить анонимным пользователям доступ к моему сайту ASP .NET.
  • Используйте проверку подлинности Windows для сайта для доступа к Sql Server. Он будет входить в Sql Server с учетной записью домена, выделенной специально для сайта (и желательно делать все под одной учетной записью).

Каждая статья в Интернете говорит вам сделать это:

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

в Web.config. Тем не менее, я понимаю, что это только , если вы хотите, чтобы пользователи входили с аутентификацией Windows. Это не имеет никакого отношения к серверу, входящему в SQL Server (за исключением того, что комбинация вышеуказанных 2 подразумевает, что аутентификация пользователей также будет использоваться для подключения к базе данных). Это правильно? Учитывая, что моя учетная запись Windows имеет доступ к файлам на сервере и базе данных, к которой подключается сайт, это сложно проверить ....

Кажется, что если я:

  • установить идентификатор пула приложений для учетной записи домена
  • включить анонимный доступ на сайте с использованием учетной записи домена
  • использовать строку подключения с аутентификацией Windows

тогда сайт подключится к SQL Server через проверку подлинности Windows. Кроме того, он будет использовать учетную запись домена, пока олицетворение отключено. Это правильно?

Ответы [ 3 ]

2 голосов
/ 09 января 2011

в Web.config.Тем не менее, я понимаю, что это только если вы хотите, чтобы пользователи входили в систему с проверкой подлинности Windows.Это не имеет ничего общего с входом сервера в SQL Server

Это частично верно.Олицетворенная учетная запись будет использоваться для входа на сервер SQL, если делегирование настроено правильно.Вы не видели этого, потому что в большей части среды делегирование должно быть явно настроено.Делегирование является более мощной формой олицетворения и позволяет серверному процессу (в вашем случае, процессу IIS) получать доступ к удаленным ресурсам (в вашем случае, SQL-серверу), выступая в роли клиента.Для получения дополнительной информации вы можете google ASP.NET Delegation.Я сказал, что это отчасти верно, потому что в какой-то простой среде вам даже не нужны никакие специальные настройки.Делегация просто работает.Например, если у вас есть сервер SQL, работающий на той же машине, что и сервер IIS.Другой случай - ваш сервер IIS работает на контроллере домена Active Directory (очень редко).В этих двух случаях или на компьютере с правильно настроенным делегированием вышеприведенные утверждения будут неверными.

Похоже, что если я:

  • , установите для идентификатора пула приложений значениеучетная запись домена
  • включает анонимный доступ к сайту с использованием учетной записи домена
  • , используйте строку подключения с проверкой подлинности Windows

, после чего сайт будет подключаться к SQL Server черезПроверка подлинности Windows.Кроме того, он будет использовать учетную запись домена, пока олицетворение отключено.Это правильно?

Да, это правильно.

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

Этолегко проверить, если у вас есть две учетные записи домена (или одна учетная запись домена и одна локальная учетная запись).Установите идентификатор пула приложений для использования вашего DomainAccount1.Предоставьте только DomainAccount1, чтобы получить разрешение на доступ к вашей базе данных.Получите доступ к своему веб-приложению на другом компьютере, используя другое подключение (учетная запись домена или локальная учетная запись).Проверьте, может ли веб-приложение правильно обращаться к вашей базе данных.

1 голос
/ 06 января 2011

Если я правильно следую за вами, вы правы;Вы не хотите использовать олицетворение / аутентификацию, чтобы делать то, что вы хотите.Установите соответствующий идентификатор пула приложений и убедитесь, что учетная запись пользователя имеет соответствующий доступ к SQL Server.

0 голосов
/ 06 января 2011

Вместо использования учетной записи Windows вы можете создать отдельный логин Sql, т. Е. Имя пользователя / pwd, и использовать его в строке подключения.

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