Могу ли я иметь вызов WCF, который попадает в БД, используя учетные данные вызывающего абонента?

Я много читал о олицетворении и перепробовал множество тегов в своем конфигурационном файле. Я пробовал [OperationBehavior(Impersonation = ImpersonationOption.Required)] в своем методе, который попадает в базу данных.

Ничего из этого не работает. Я получаю множество сообщений об ошибках в зависимости от того, как настроена моя конфигурация.

Может ли кто-нибудь объяснить мне, какой С# и конфигурация (т.е. привязки, поведение, настройки конечных точек) необходимы для работы следующего сценария:

  • Я вызываю метод WCF через WCFTestClient.
  • Метод WCF размещается в IIS (работает под пользователем IIS, который не является допустимым пользователем в БД).
  • Этот метод видит, кто является вызывающим абонентом, и передает эти учетные данные вызову базы данных.
  • Вызов базы данных находится в другом проекте (библиотеке классов) и использует Linq-to-sql.
  • База данных выполняет действие, как если бы это сделал вызывающий объект службы WCF.

Если кто-то прояснил эту тайну, пожалуйста, поделитесь со мной подробностями.

Спасибо!

(ПРИМЕЧАНИЕ: я разрабатываю в Visual Studio 2010 Ultimate и размещаю в IIS 7)


person Vaccano    schedule 13.10.2010    source источник


Ответы (1)


Существует хорошее пошаговое руководство по настройке имперсонации в WCF здесь. Возможно, вам не хватает параметра servicebehavior?

person Steve Townsend    schedule 13.10.2010