2010-01-19 5 views
0

필자가 작성한 Windows 서비스가 포함 된 벽돌 벽이 있습니다. Windows 서비스는 Internet Explorer 용 프록시 서버입니다. Mentalis (http://www.mentalis.org/soft/projects/proxy/)의 C# 프록시를 일부 사소한 개조와 함께 사용하여 서비스로 실행합니다.Windows 서비스 - 사용자가 서비스를 호출하는 대상

IE는 내 프록시에 연결하여 문제없이 원하는 웹 페이지를 얻을 수 있지만 어떤 Windows 사용자가 프록시를 사용하는지 알고 싶습니다. WindowsIdentity.GetCurrent(). Name은 서비스가 실행중인 계정 (NT AUTHORITY \ SYSTEM)을 반환합니다.

요청하는 사용자를 어떻게 결정합니까? 이것이 가능한가?

+0

프록시가 브라우저와 동일한 호스트에서 실행됩니까? – lsalamon

+0

대부분의 경우 프록시는 로컬로 실행되고 (127.0.0.1에서 수신 대기) 이지만 별도의 상자에 여러 대의 컴퓨터 전용 프록시 서버로 설치할 수 있습니다. – modernzombie

답변

3

사용자를 확인하려면 프록시 서버로 인증을 구현해야합니다. 그렇지 않으면 짧은 대답은 아니오, 불가능합니다.

+0

정확히. 서버가 정보를 묻는 경우 대부분 브라우저가 인증 정보 만 전송합니다. –

+0

네트워크 프로그래밍에 익숙하지 않습니다. Mentalis 프록시는 소켓을 사용하여 요청을 만들고 처리합니다. 브라우저에 인증을 요청할 위치를 알려 줄 수 있습니까? IE가 프록시 설정의 IP 및 포트로만 요청을 전달하는 경우 내 코드에서 인증이 필요한지 어떻게 알 수 있습니까? – modernzombie

+0

@modernzombie : 브라우저는 "407 프록시 인증 필요"상태 코드를 프록시에서 수신 할 때 프록시에 자신을 인증해야한다는 것을 알게됩니다. 그러나 Mentalis 웹 사이트에서 "프록시 서버에 무엇을 표시 하시겠습니까?"라는 설문 조사가 있습니다. 그 중 하나가 "인증 기능"입니다. Mentalis 프록시가 인증을 지원하지 않는다고 가정합니다. –

2

나는 그렇게 생각하지 않습니다. 프록시 서버는 TCP 서버 일뿐입니다. 이러한 요청의 일부로 전송되는 신원에 대해서는 아무 것도 없습니다.

관련 문제