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

C# 除非共享,否则打印机不可用,c#,asp.net,printing,windows-server-2003,C#,Asp.net,Printing,Windows Server 2003,我们使用经典asp调用C#dll,在C#dll中,我们使用System.Drawing.Printing.PrinterSettings.InstalledPrinters获取可用打印机列表。如果打印机未共享,则当用户尝试打印时,打印机将不会显示。本地系统帐户可以从VB6 dll查看并打印到它们,管理员可以按照您的预期从C#dll打印。我们是否需要授予用户某种权限,以便这些打印机可用?我记得,运行网站时使用网络用户帐户,该帐户可能没有查看本地打印机的权限 MSDN上有一个页面说,你可以模拟另一个

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

我记得,运行网站时使用网络用户帐户,该帐户可能没有查看本地打印机的权限

MSDN上有一个页面说,你可以模拟另一个可能有权访问打印机的用户,但我一直找不到

编辑:我发得太快了


HTH

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

我很确定它是使用用户的凭据运行的。在SQL Profiler中,我的查询使用用户的凭据。授予网络服务帐户对打印机的访问权限并不能解决问题。如果它仅在explorer.exe运行时连接,那么在没有用户登录的情况下,管理员为什么能够访问打印机?我不确定您的确切意思。也许管理员可以这样做,因为他自己已经登录,或者因为特定用户可以看到的打印机作为条目存储在注册表中。