2013-07-30 1 views
6

Как получить доменное имя пользователя, выполняющего печать, с идентификатором задания печати?Получение доменного имени пользователя для задания печати из API диспетчера очереди печати

Я могу получить имя пользователя от, например, JOB_INFO_2, извлеченного через GetJob, но ни одна из структур JOB_INFO_ # не содержит доменного имени пользователя.

Я могу получить домен сервера печати с помощью IPGlobalProperties.GetIPGlobalProperties().DomainName, но это может быть не то же самое, что и домен пользователя, поэтому он не является надежным решением.

+1

Верно ли, что пользователь может печатать на принтере в другом домене * без * предоставления допустимого входа в этот домен? Я не знаю себя, но мне интересно, может быть, домен сервера печати достаточно хорош. –

+3

Это изначально было зарегистрировано как [ошибка] (http://support.microsoft.com/kb/156473) в NT 4.0> Члену pUserName структуры JOB_INFO_2 не включает информацию о домене. – randcd

+0

@randcd - ссылка не подходит в нужное место. –

ответ

1

Я не знаю точно, но мне кажется, что, возможно, имя пользователя будет включать домен пользователя (somelike name @ domain), и, возможно, это произойдет, только если пользователь печатает на принтер в другом домене , Возможно, стоит написать код и проверить это.

+0

Я знаю, что он не включает домен для пользователя в том же домене, но похоже, что стоит проверить, чтобы поведение было одинаковым для пользователя из другого домена. –

+0

У меня нет доступа к среде, где я могу проверить это сам, поэтому, если вы это проверите, пожалуйста, поделитесь результатами. – Stuart

1

Попробуйте использовать UserPrincipal.FindByIdentity(PrincipalContext, IdentityType, String), чтобы найти пользователя по имени пользователя. Как только пользователь будет найден, получите домен с помощью свойства Context UserPrincipal.

Вам необходимо добавить ссылку на System.DirectoryServices.AccountManagement.

+0

Опубликуйте рабочий код, который демонстрирует вашу идею, и он стоит 50 баллов. На щедрость действует 24-часовой льготный период. –

+0

Спасибо за идею. Я попробую. –

Смежные вопросы