2011-02-23 2 views
0

로컬 영역 네트워크에서 호스팅되는 ASP.NET 응용 프로그램을 사용했습니다. LAN (Local Area Network) 클라이언트가없는 동안 응용 프로그램 호스트 컴퓨터는 인터넷에 액세스 할 수 있습니다.인트라넷 사이트에 인터넷 콘텐츠를 표시합니다.

인터넷 (공개 네트워크) 주소의 IFrame에 리치 콘텐츠 (이미지)가있는 웹 페이지를 표시해야한다는 요구 사항이 있습니다.

그러나 클라이언트에서 인터넷 액세스를 사용할 수 없기 때문에이 방법은 서버에서 수행되어야하며 클라이언트에 제공되어야합니다.

어떻게이 작업을 수행 할 수 있습니까?

+0

네트워크 연결 처음에 사이트를 탐색하는 방법은 무엇입니까? 서버에 네트워크 연결이없는 경우 어떻게 사이트를 서비스 할 것입니까? – Hawxby

+0

네트워크 연결을 통해 공용 네트워크 또는 인터넷에 액세스 할 수있었습니다. –

답변

0

응용 프로그램의 코드에서 HttpWebRequestHttpWebResponse을 사용하여 다른 서버를 쿼리 한 다음 Response에 응답하여 다시 응답 할 수 있습니다. 실제 웹 페이지를 복제하려면 모든 임베디드 리소스 (스크립트, 이미지 등)를 구문 분석하고 호스트 서버에서 다시 요청해야하며 애플리케이션에서 다시 스트리밍 될 수 있도록 아키텍처를 만들어야합니다. 즉, 페이지 요청에 대한 응답을 간단하게 거부하면 클라이언트가 액세스 할 수 없기 때문에로드 할 리소스가 없습니다. 페이지의 해당 URL을 서버에서 다시 작성하여 실제 서버에 다시 요청해야합니다. 고통은 내게 들리지만 기술적으로는 가능합니다.

클라이언트가 포털을 통해 직접 사이트에 액세스 할 수 있도록 프록시를 만드는 것이 훨씬 쉽다고 생각합니다. (위에서 제안한 것은 기본적으로 특수 프록시입니다.) IIS에서 직접 작업 할 수 있다면이 목적을 위해보다 직접적인 프록시로 작동하는 것을 만들 수 있습니다. 나는 이것이 소매점의 공공 터미널이고 분명히 고객의 가격을 쇼핑하는 것을 원하지 않는 이유와 같은 이유가 있어야한다고 생각합니다.

+0

내가 생각한 어떤 것과 비슷합니다. 거기에 페이지를 로컬로 다운로드하는 데 도움이 될 수있는 무료 API와 같은 일부 웹 사이트 다운 로더가있을 수 있다고 생각했습니다. 기능과 같은 다운로더를 작성하는 것은 너무 고통 스럽습니다 ... 그리고 비용은 시간과 노력의 가치가 없습니다. –

+0

프록시에 대한 일종의 프록시를 만들 때 ISAPI 처리기를 만들어 사이트에 대한 모든 요청을 차단하고 조건부로 리디렉션 할 수 있습니다. 그래서 여러분의 코드는 오프 사이트 자원을'someurl/originalurl/resource.xxx '로 간단하게 대체 한 페이지를 제공 할 수있다. 핸들러는'someurl '을 사용하여 그것을 프록시 요청으로 식별 한 다음 요청을 오프 사이트 서버로 재전송한다. 응답을 캡처하여 클라이언트에 스트리밍합니다. 오프 사이트 URL을 결정한 후 OK입니다. 생각하지 못한 세부 사항이 있지만 기본 구현은 직설적이어야합니다. –

관련 문제