2009-09-23 1 views
0

Я не могу использовать учетную запись Windows для доступа к моей базе данных с моей ASP-страницы. Вот моя строка соединения: Provider = SQLOLEDB; DATA SOURCE = НСЗ-SQL-I0; UID = DOMAIN \ НСЗ-svcRequestForm; PWD = пароль; DATABASE = RequestFormsаутентификация в sql 2005 с использованием учетной записи домена из ASP

я получаю классический: Microsoft OLE DB Provider для SQL Server (0x80040E4D) Ошибка входа для пользователя «NIRHB \ NHA-svcRequestForm».

Это происходит для любой учетной записи домена, которую я использую. Использование SQL-аккаунтов отлично работает. Любая идея, какие настройки/конфигурации мне не хватает?

Thanks

+0

ASP классический или .NET? – AnthonyWJones

+0

Это классический ASP. – Kolten

ответ

1

Этот тип строки подключения используется для учетных записей SQL; вы на самом деле пытаетесь подключиться как пользователь SQL с именем «DOMAIN \ NHA-svcRequestForm».

Попробуйте somethign как это:

PROVIDER=SQLOLEDB;DATA SOURCE=NHA-SQL-I0;DATABASE=RequestForms;Trusted_Connection=YES 

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

+0

Итак, у меня есть пул приложений, чтобы использовать «DOMAIN \ NHA-svcRequestForm» для идентификации, но теперь я продолжаю получать ошибку «Service Unavailable» при попытке загрузить страницу ... Проверено имя пользователя и пароль являются правильными. Добавлена ​​строка подключения, как вы описали выше, но не уходите! Любая идея, что не так? Я привык к более подробным сообщениям, чем просто «Service Unavailable» ... – Kolten

+0

Попробуйте добавить этого пользователя в группу IIS_WPG на сервере. Учетные записи, действующие в качестве идентификатора рабочего процесса, нуждаются в определенных разрешениях для правильной работы. –

1

Указание имени пользователя и пароля в строке подключения работает только для аутентификации SQL.

Для интегрированной проверки подлинности (например, использование «учетной записи домена») вместо этого вы должны указать Integrated Security=SSPI. Вы не можете указать имя пользователя явно, SQL будет аутентифицировать учетную запись, выполняющую процесс, связанный с подключением (т. Е. Учетную запись ASP).

Если вы хотите аутентифицировать пользователей домена, подключенных к вашему сайту, вы должны включить олицетворение в вашем пуле приложений и разрешить ограниченное делегирование. См. How To: Use Protocol Transition and Constrained Delegation in ASP.NET 2.0.

+0

Я думаю, что он использует классический ASP, хотя ... тем не менее ваш ответ по-прежнему применяется! –

+0

Это классический ASP. – Kolten

+0

Ограниченная делегирование и олицетворение работают одинаково в классическом ASP. Существует множество руководств по настройке этого, например. http://technet.microsoft.com/en-us/library/dd296638(WS.10).aspx –