C # ASPX Identity Олицетворение / ConnectionString для пользователя не работает - PullRequest
1 голос
/ 05 января 2012

У меня есть веб-сайт C # ASPX, хранящийся на одном сервере, который вызывает множество результатов с сервера SQL, оба в одном домене.В моей базе данных SQL есть два пользователя с одинаковыми разрешениями:

  1. admin
  2. NTADMIN \ Me

Мой сайт хранится в каталоге IIS налокальный сервер.В моем файле web.config есть олицетворение личности и строки подключения следующим образом:

<identity impersonate="true" userName="admin" password="admin" />

<add name="ConnectionString" connectionString="Data Source='server';Initial Catalog='database';Integrated Security=SSPI;" providerName="System.Data.SqlClient" />

Почему это работает, когда я жестко кодирую свои учетные данные NTADMIN, но не учетные данные администратора SQLбаза данных?У пользователя 'admin' тоже должны быть учетные данные домена?Я не думал, что это было необходимо, если я могу войти в базу данных, используя их.

Ошибка, которую я получаю, выглядит следующим образом (uid + pwd отлично работает, входя в базу данных):

Не удалось создать токен пользователя Windows из учетных данных, указанных в файле конфигурации.Ошибка операционной системы 'Ошибка входа в систему: неизвестное имя пользователя или неверный пароль.

Ответы [ 2 ]

2 голосов
/ 05 января 2012

В этом случае нельзя выдавать себя за пользователя SQL. У вас есть два типа пользователей: пользователь SQL и пользователь Windows. Тег олицетворения личности будет работать только для учетной записи пользователя Windows.

Windows пытается войти в систему этого пользователя и ничего не знает об этом, следовательно, ошибочный пароль.

1 голос
/ 05 января 2012

Проблема с привилегиями. Попробуйте это один раз.

Добавьте локальную учетную запись пользователя Windows на сервер базы данных и веб-сервер с одинаковыми именем пользователя и паролем, а затем добавьте пользователя в качестве входа Windows на сервер SQL и назначьте соответствующие разрешения для входа

сделать строку подключения Integrated Security = true.

добавить объект в web.config. Включите анонимный доступ и отключите все остальные параметры безопасности в настройках безопасности IIS.

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