2013-07-30 5 views
6

Come posso ottenere il nome di dominio dell'utente che esegue una stampa dato l'ID lavoro della stampa?Come ottenere il nome di dominio dell'utente per un lavoro di stampa dall'API dello spooler di stampa

È possibile ottenere il nome dell'utente, ad es. JOB_INFO_2 recuperato tramite GetJob, ma nessuna delle strutture JOB_INFO_ # contiene il nome di dominio dell'utente.

È possibile ottenere il dominio del server di stampa utilizzando IPGlobalProperties.GetIPGlobalProperties().DomainName, ma potrebbe non essere lo stesso del dominio dell'utente, quindi non è una soluzione affidabile.

+1

È vero che l'utente può stampare su una stampante su un altro dominio * senza * fornendo un accesso valido per quel dominio? Non mi conosco, ma mi chiedo se forse il dominio del server di stampa è abbastanza buono. –

+3

Originariamente registrato come [bug] (http://support.microsoft.com/kb/156473) in NT 4.0> il membro pUserName della struttura JOB_INFO_2 non include le informazioni sul dominio. – randcd

+0

@randcd - il collegamento non va nel posto giusto. –

risposta

1

Non so per certo, ma mi viene in mente che forse il nome utente includerà il dominio dell'utente (somelike name @ domain), e forse ciò accade solo se l'utente sta stampando su una stampante in un altro dominio . Potrebbe valere la pena scrivere un codice e verificarlo.

+0

So che non include il dominio per un utente sullo stesso dominio, ma sembra che valga la pena controllare per confermare che il comportamento è lo stesso per un utente da un dominio diverso. –

+0

Non ho accesso a un ambiente in cui posso controllare da solo, quindi se lo verifichi, condividi i risultati. – Stuart

1

Provare a utilizzare l'utente UserPrincipal.FindByIdentity(PrincipalContext, IdentityType, String) per nome utente. Una volta trovato l'utente, ottenere il dominio con la proprietà Contesto di UserPrincipal.

È necessario aggiungere un riferimento a System.DirectoryServices.AccountManagement.

+0

Pubblica codice di lavoro che dimostra la tua idea e vale 50 punti per te. C'è un periodo di grazia di 24 ore sulla taglia. –

+0

Grazie per l'idea. Farò un tentativo. –

Problemi correlati