查找客户端打印机ASP.Net

时间:2017-04-18 15:31:40

标签: asp.net printers

据我所知,出于安全原因,无法使用现代浏览器找到客户端本地打印机。我有一些条件可能会使答案不同。

  1. 我正在尝试从公司网络中获取客户端本地打印机。所以这并没有发表在'
  2. 之外
  3. 我想几年前微软发布了一个可以从客户端浏览器运行的小版本的.Net。如果是这样,它仍然存在我想知道是否可以检查客户本地打印机。
  4. 由于

2 个答案:

答案 0 :(得分:0)

提供检索客户端打印机外观的一种方法是在具有相同访问权限的同一网络中运行服务器端应用程序。 Silverlight也许能够做到。不幸的是,我没有经验。

点击此处:Get list of network printers silverlight

答案 1 :(得分:0)

由于几乎所有我在互联网上搜索解决方案的假设我们都希望从浏览器获取客户端的打印机,因此最终需要很少的信息。我们希望通过网络找到这些信息。

最终解决方案是使用DirectorySearch等。这里是删除了一些隐私内容的代码。它处于POF状态,因此可能有一些不太好的语法

Dim list As New List(Of String)
Dim listtemp As New List(Of String)
Dim resultCollection As SearchResultCollection
Dim computer_name As String = System.Net.Dns.GetHostEntry(Request.ServerVariables("remote_addr")).HostName.Replace(".ourcompany.com", "").ToLower  'clients machine name       
    Dim dirEntry As New DirectoryEntry("LDAP://DC=OURCOMPANY, DC=com")
    Dim dirSearcher As New DirectorySearcher(dirEntry)
    dirSearcher.Filter = "objectCategory=printQueue"
    dirSearcher.PropertyNamesOnly = True
    dirSearcher.PropertiesToLoad.Add("Name")
    dirSearcher.SearchScope = SearchScope.Subtree
    resultCollection = dirSearcher.FindAll()
    For Each sresult As SearchResult In resultCollection
        If sresult.GetDirectoryEntry.Name.ToLower.Contains(computer_name) Then
            list.Add(sresult.GetDirectoryEntry.Name.ToLower.Substring(3).Replace(computer_name + "-", ""))
        End If
    Next