Ошибка аутентификации Web.config - PullRequest
4 голосов
/ 29 августа 2009

Я использую SQLServer2005 и VS2008. Моя строка подключения в web.config:

add name="library" connectionString="Data source=KMT; Initial Catalog=Library;Integrated Security=SSPI"

Здесь KMT - это имя моего сервера, Library - моя база данных.

Когда я запускаю свою страницу через VS2008 localhost, все нормально. Однако при просмотре через IIS отображается сообщение об ошибке, например «Ошибка входа пользователя, KMT / ASP.NET». Мой режим аутентификации sqlserver - windows, и он нормально работает в web.config. Каким будет решение?

Ответы [ 6 ]

2 голосов
/ 31 августа 2009

один из моих друзей помог мне решить эту проблему как я выполнил SQL для добавления ASPNET в качестве логина моя БД и настройка DA разрешений

exec sp_grantlogin N'MACHINE \ ASPNET ' exec sp_defaultdb N'MACHINE \ ASPNET ', N'Database' использовать базу данных exec sp_grantdbaccess N'MACHINE \ ASPNET ', N'ASPNET' exec sp_addrolemember N'db_owner ', N'ASPNET'

здесь MACHINE - это имя компьютера, а база данных - это имя моей базы данных. но благодаря этому пользователь ASPNET имеет всего контроль над этой БД.

2 голосов
/ 29 августа 2009

Использование «Интегрированной безопасности» означает вход в базу данных с именем пользователя, выполняющего процесс. Когда вы запускаете локальный веб-сервер VS, он запускается как ваш логин. Но в IIS рабочий процесс веб-сервера выполняется как предопределенная учетная запись пользователя. У вашего удостоверения рабочего процесса должны быть права на ваш SQL Server и базу данных.

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

0 голосов
/ 31 августа 2009

Если сервером является Windows 2003, вы можете предоставить сетевой службе разрешения на доступ к SQL Server

0 голосов
/ 29 августа 2009

Планировалось ли использовать системную учетную запись ASP.NET или учетную запись Windows для пользователей?

Если последнее вам нужно олицетворение . Это работает, если SQL и IIS находятся на одной и той же машине, в противном случае это двойной прыжок и требуется нетривиальный объем работы для настройки делегирования.

0 голосов
/ 29 августа 2009

Если вы используете Integrated Security = SSPI, учетные данные текущего пользователя (в VS это будет ВЫ) используются для подключения к SQL Server.

Из приложения IIS для входа в систему используется пользователь, связанный со службой IIS.

Решения:

  • Назначьте службе IIS специального пользователя, которому разрешено подключаться к SQL

  • Используйте аутентификацию SQL Server для доступа к базе данных и сохраните имя пользователя / пароль в строке подключения

0 голосов
/ 29 августа 2009

VS2008 использует ваши учетные данные для авторизации на БД, IIS использует другую учетную запись. Убедитесь, что у учетной записи IIS достаточно разрешений.

...