除非共享,否则打印机不可用

Printers not available unless shared

提问人:Ryan 提问时间:8/18/2008 最后编辑:Joel CoehoornRyan 更新时间:11/21/2011 访问量:928

问:

我们使用经典 asp 调用 C# dll,在 C# dll 中,我们使用 System.Drawing.Printing.PrinterSettings.InstalledPrinters 来获取可用打印机的列表。如果打印机未共享,则当用户尝试打印时,它们将不会显示。本地系统帐户可以从 VB6 dll 查看并打印给它们,管理员可以从 C# dll 打印,正如你所期望的那样。我们是否需要授予用户某种权限才能使这些打印机可用?

C# asp.net 打印 Windows-Server-2003

评论

0赞 Joel Lucsy 8/20/2008
我不确定你到底是什么意思。也许管理员可以这样做,因为他自己已登录,或者因为特定用户可以看到的打印机存储为注册表中的条目。

答:

4赞 Tim Sullivan 8/18/2008 #1

我记得,运行网站使用网络用户帐户,该帐户可能无权查看本地打印机。

MSDN 上有一个页面说如何冒充另一个可能有权访问打印机的用户,但我找不到它。

编辑:我发布得太早了。这是页面

HTH

评论

0赞 Ryan 5/27/2011
我很确定它正在使用用户的凭据运行。在 SQL 事件探查器中,我的查询使用用户的凭据。授予网络服务帐户访问打印机的权限并不能解决问题。
3赞 Joel Lucsy 8/19/2008 #2

我相当确定,模拟用户或使用其凭据并不构成查看该用户打印机的能力。我相信explorer .exe会在登录时重新连接所有网络资源(共享/打印机)。

评论

0赞 Ryan 5/27/2011
如果它仅在explorer .exe运行时连接,那么为什么管理员能够在没有用户登录时访问打印机?