2008-08-18 11 views
5

Wir verwenden klassische ASP, um eine C# -Dll aufzurufen, und in der C# -Dll verwenden wir System.Drawing.Printing.PrinterSettings.InstalledPrinters, um eine Liste der verfügbaren Drucker zu erhalten. Wenn die Drucker nicht freigegeben sind, werden sie nicht angezeigt, wenn ein Benutzer versucht, zu drucken. Das Konto des lokalen Systems kann sie von einer VB6-DLL aus anzeigen und drucken, und Administratoren können problemlos aus der C# -Dll drucken, wie Sie vielleicht erwarten. Gibt es eine Art von Berechtigungen, die wir dem Benutzer gewähren müssen, damit diese Drucker verfügbar sind?Drucker nicht verfügbar, sofern freigegeben

+0

Ich bin mir nicht sicher, was genau du meinst. Vielleicht kann der Administrator das tun, weil er selbst angemeldet ist oder weil die Drucker, die ein bestimmter Benutzer sehen kann, als Einträge in der Registrierung gespeichert werden. –

Antwort

4

Soweit ich mich erinnere, wird beim Ausführen einer Website das Netzwerkbenutzerkonto verwendet, das möglicherweise keine Berechtigung zum Anzeigen lokaler Drucker hat.

Es gab eine Seite auf MSDN, die sagte, wie Sie einen anderen Benutzer annehmen können, der Zugriff auf die Drucker haben könnte, aber ich konnte es nicht finden.

Edit: Ich postete zu früh. Here's the page.

HTH

+0

Ich bin mir ziemlich sicher, dass es mit den Anmeldeinformationen des Benutzers ausgeführt wird. In SQL Profiler verwenden meine Abfragen die Anmeldeinformationen des Benutzers. Das Gewähren des Netzwerkdienstkontozugriffs auf den Drucker löst das Problem nicht. – Ryan

3

Ich bin ziemlich sicher, dass ein Benutzer Identität oder ihre Anmeldeinformationen nicht über die Fähigkeit dar, die Drucker für den Benutzer zu sehen. Ich glaube, dass explorer.exe alle Netzwerkressourcen (Freigaben/Drucker) bei der Anmeldung erneut verbindet.

+0

Wenn die Verbindung nur hergestellt wird, wenn explorer.exe ausgeführt wird, warum können die Administratoren dann auf die Drucker zugreifen, wenn keine Benutzer angemeldet sind? – Ryan