2017-04-18 17 views
0

보안상의 이유로 최신 브라우저를 사용하는 클라이언트 로컬 프린터를 찾을 수 없다는 내용을 읽었습니다. 나는 그 대답을 다른 것으로 만드는 몇 가지 조건을 가지고있다.클라이언트 프린터 찾기 ASP.Net

  1. 회사 네트워크 내에서 로컬 프린터를 가져 오려고합니다. 그래서 이것은 '외부에 게시되지 않습니다.
  2. 몇 년 전 Microsoft는 클라이언트 브라우저에서 실행할 수있는 .Net의 작은 버전을 발표했습니다. 그렇다면 클라이언트 프린터를 검사 할 수 있는지 궁금하다.

감사

클라이언트 프린터를 검색하는 모습을 제공하기

답변

0

한 가지 방법은 동일한 액세스 권한을 가진 동일한 네트워크에있는 서버 측 응용 프로그램을 실행하는 것입니다. Silverlight가이를 수행 할 수 있습니다. 불행히도 나는 그것에 대한 경험이 없습니다. 여기

점검 : 솔루션에 대한 인터넷에 거의 모든 내 검색 우리가 브라우저에서 클라이언트의 프린터를 얻고 싶은 가정하기 때문에 Get list of network printers silverlight

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