在给定打印作业 ID 的情况下,如何获取进行打印的用户的域名?
我可以从例如通过 GetJob 检索到的 JOB_INFO_2 中获取用户名,但是 JOB_INFO_# 结构中没有一个包含用户的域名。
我可以使用 获取打印服务器的域IPGlobalProperties.GetIPGlobalProperties().DomainName
,但这可能与用户的域不同,因此它不是一个可靠的解决方案。
在给定打印作业 ID 的情况下,如何获取进行打印的用户的域名?
我可以从例如通过 GetJob 检索到的 JOB_INFO_2 中获取用户名,但是 JOB_INFO_# 结构中没有一个包含用户的域名。
我可以使用 获取打印服务器的域IPGlobalProperties.GetIPGlobalProperties().DomainName
,但这可能与用户的域不同,因此它不是一个可靠的解决方案。
我不确定,但我突然想到,用户名可能会包含用户的域(类似于 name@domain),并且可能只有当用户打印到另一个域中的打印机时才会发生这种情况。可能值得编写一些代码并检查一下。
尝试使用UserPrincipal.FindByIdentity(PrincipalContext, IdentityType, String)通过用户名查找用户。找到用户后,获取具有该 UserPrincipal 的 Context 属性的域。
您需要添加对 System.DirectoryServices.AccountManagement 的引用。