Проблема с подключением к базе данных из рабочего процесса sharepoint с интегрированными параметрами безопасности - PullRequest
0 голосов
/ 10 октября 2008

Доброе утро всем,

У меня проблема с использованием проекта рабочего процесса SharePoint (C #, VS 2008) и подключение к базе данных. Вот мое подключение к базе данных строка:

Data Source=DBSERVER;Initial Catalog=DBNAME;Integrated Security=True; 

Когда я пытаюсь запустить следующий код, я получаю следующую ошибку ...

SqlConnection dbEngine = new SqlConnection(Constants.DBCONNECTION_STRING);
dbEngine.Open(); 

"Ошибка входа пользователя 'DOMAIN \ MACHINE_NAME $'"

Что мне нужно сделать, это пройти через учетные данные пользователя, вошедшего в систему. У меня есть олицетворение, но оно не проходит через. Любые предложения будут очень признательны.

Заранее спасибо за любой совет,

Скотт Веркуски

Ответы [ 3 ]

1 голос
/ 03 марта 2009

Любой доступ к БД должен выполняться как учетная запись службы Windows из соображений безопасности и пула соединений.

Относительно контекста безопасности рабочего процесса см .:

SharePoint, рабочие процессы и безопасность http://cglessner.blogspot.com/2008/09/sharepoint-workflows-and-security.html

Декларативные рабочие процессы и пользовательский контекст http://blogs.msdn.com/sharepointdesigner/archive/2008/09/28/declarative-workflows-and-user-context.aspx

Безопасность и разработка приложений в SharePoint: первые шаги Workflow http://www.microsoft.com/technet/community/columns/secmvp/sv0408.mspx#EACAC

1 голос
/ 11 октября 2008

Являются ли веб-интерфейс и сервер SQL в одном окне?

Если нет, вам нужно настроить Kerberos, чтобы разрешить распространение учетных данных.

0 голосов
/ 15 ноября 2008

Вы не можете этого сделать - рабочий процесс не выполняется в контексте пользователя. Рабочие процессы выполняются асинхронно. Только (HTTP) WebPage-запросы выполняются в контексте пользователя (если вы включаете олицетворение). Вы не можете передать олицетворение в рабочий процесс. Для восстановления олицетворения в рабочем процессе (что вам не следует делать) потребуется имя пользователя И пароль ИЛИ переход по протоколу (тогда процесс должен будет выполняться в системе).

Кроме того, ваше приложение имеет серьезные проблемы с дизайном, если вы пытаетесь получить доступ к БД из олицетворенного пользовательского контекста. Это портит пул соединений и серьезно ухудшит производительность. Это вообще не ходи.

Это , а не проблема с Kerberos. Процесс пытается получить доступ к базе данных как к учетной записи компьютера, которая сообщает вам, что процесс работает как сетевая служба или (win 2008 и более поздние) система.

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