Аутентифицировать сообщение MSMQ с альтернативными учетными данными? - PullRequest
3 голосов
/ 10 марта 2010

Я написал приложение на C #, которое помещает XML-объект в очередь MSMQ. Очередь требует аутентификации.

MessageQueue queue = GetQueue();
var message = new Message();
message.Formatter = new CustomXMLFormatter();
message.Body = xml.ToString();
message.Label = "From my application";
message.UseAuthentication = true;
queue.Send(message, MessageQueueTransactionType.Single);

Это все работает сегодня, но теперь мне нужно внести изменения в способ аутентификации. В настоящее время сообщения аутентифицируются с помощью пользователя, который запускает приложение. Однако я хочу использовать статический AD-пользователь istead. (Причина в том, что системе, получающей сообщения, необходимо, чтобы все сообщения были добавлены одной учетной записью пользователя).

Есть ли способ изменить, какой пользователь выполняет аутентификацию?

1 Ответ

0 голосов
/ 13 октября 2011

Вы можете попробовать использовать Имитатор . Это хорошо работает, если ваше приложение работает на машине, которая находится внутри домена. Вам придется использовать что-то еще, если компьютер находится за пределами домена и не имеет доступа к каталогу AD.

Вот пример того, как может выглядеть код:

using ( new Impersonator( "myUsername", "myDomainname", "myPassword" ) )
{
   ...

   <code that executes under the new context>

   ...
}
...