Олицетворение не является встроенной функцией любой системы очередей, о которой я знаю - в частности, MSMQ не предлагает эту функцию.
Я использую сценарий, в котором у вас есть асинхронный сервис, требующий олицетворения длявнутренняя служба, которую вы не контролируете (например, общий ресурс SMB или другая служба, требующая аутентификации Windows). Если вы действительно управляете серверной службой, рассмотрите возможность предоставления вашей службе аутентификации как самой себя, а затем «действуйте» как реальный клиент.
Итак, в предположении, что вам нужно настоящее олицетворение, у вас есть несколько вариантов: S4U и C2WTS . Оба по сути являются способами использования SeTcbPrivilege для выдачи токенов для пользователей по имени пользователя (пароль не требуется). Хороший учебник для обеих технологий доступен на MSDN .
Если это не вызывает мгновенные сигналы предупреждения, следует заметить, что это будет очень важный кусок кода с точки зрения безопасности. SeTcbPrivilege сам по себе влияет только на локальную машину и поэтому является управляемым, но при использовании в сочетании с делегированием он может использоваться для доступа к удаленным ресурсам с теми же привилегиями, что и вызывающая сторона. По сути, вы используете свой сервис с правами «администратора домена», если это не ограничено и не спланировано очень тщательно.