использование собственного участника в Workflow - PullRequest
0 голосов
/ 26 марта 2009

У меня есть приложение, в котором размещены несколько служб WCF. Я создал пользовательский ServiceAuthorizationManager, который работает отлично. Я проверяю несколько элементов в OperationContext.IncomingMessageHeaders, чтобы получить имя пользователя и пароль. Это должно было преодолеть некоторые ограничения в нашей среде, которые не позволили бы нам использовать то, что было встроено в платформу. Менеджер создает собственный IPrincpal с несколькими необходимыми объектами и помещает его в текущий выполняющийся поток для использования в дальнейшем в бизнес-логике WCF. Работает отлично.

Проблема в том, что у меня есть служба WCF, которая является рабочим процессом, и мне нужно использовать тот же механизм там. Менеджер вызывается правильно, однако при выполнении CurrentPrincpal потока не мой пользовательский принципал, это общий принцип. Расследование показывает, что среда выполнения рабочего процесса создает поток, а не использует поток, в который поступил вызов WCF.

Кто-нибудь сталкивался с этой проблемой, и есть ли хорошие решения для нее?

1 Ответ

0 голосов
/ 26 марта 2009

Если среда выполнения находится в том же домене приложения, что и менеджер, тогда вы сможете вызвать

AppDomain.CurrentDomain.SetThreadPrincipal

См. здесь для получения дополнительной информации

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