2013-07-30 10 views
6

Yazdırmanın İş Kimliği verildiği zaman kullanıcının alan adını nasıl alabilirim?Yazdırma Biriktiricisi API'sından yazdırma işi için kullanıcının etki alanı adını alma

Kullanıcının adını, örneğin GetJob aracılığıyla alınan JOB_INFO_2'den alabilirim, ancak JOB_INFO_ # yapılarının hiçbiri kullanıcının alan adını içermez.

Baskı sunucusunun etki alanını IPGlobalProperties.GetIPGlobalProperties().DomainName kullanarak alabilirim, ancak bu kullanıcının etki alanıyla aynı olmayabilir, bu nedenle güvenilir bir çözüm değildir.

+1

Kullanıcının başka bir etki alanında * yazıcıyı bu etki alanı için geçerli bir oturum açma sağlayarak * yazdırabileceği doğru mu? Kendimi bilmiyorum ama baskı sunucusunun etki alanının yeterince iyi olup olmadığını merak ediyorum. –

+3

Bu başlangıçta, NT 4.0> bir [bug] (http://support.microsoft.com/kb/156473) olarak oturum açıldı> JOB_INFO_2 yapısının pUserName üyesi etki alanı bilgilerini içermiyor. – randcd

+0

@randcd - bağlantı doğru yere gitmiyor. –

cevap

1

Kesinlikle bilmiyorum, ancak kullanıcı adı kullanıcının etki alanını (somelike name @ domain) içerecek ve belki de yalnızca kullanıcı başka bir alanda bir yazıcıya yazdırıyorsa bu gerçekleşir. . Bazı kodların yazılmasına ve kontrol edilmesine değer olabilir.

+0

Aynı etki alanındaki bir kullanıcının etki alanını içermediğini biliyorum, ancak davranışın farklı bir etki alanından gelen bir kullanıcı için aynı olduğunu doğrulamaya değecek gibi gözüküyor. –

+0

Bunu kendim kontrol edebileceğim bir ortama erişimim yok, bu yüzden eğer buna bir göz attığınızda lütfen sonuçları paylaşın. – Stuart

1

Kullanıcı adı ile bulmak için UserPrincipal.FindByIdentity(PrincipalContext, IdentityType, String) kullanmayı deneyin. Kullanıcı bulunduğunda, bu UserPrincipal'ın Context özelliğiyle etki alanını edinin.

System.DirectoryServices.AccountManagement öğesine bir refreç eklemeniz gerekir.

+0

Fikrinizi gösteren ve size 50 puanlık bir değer veren çalışma kodu. Ödül için 24 saat ödemesiz bir dönem vardır. –

+0

Fikir için teşekkürler. Bunu deneyeceğim. –