2012-09-11 2 views
2

저는 미디어 파일을 제공하기 위해 Response.Redirect를 사용하고 있지만 사람들이 파일이나 하위 도메인 (호스트)에 대한 직접 URL을 보지 못하도록하고 있습니다. 'get'을 가짜로 만들고 호스트와 참조자를 숨길 수 있습니까?모든 리디렉션 정보 숨기기

+0

기본적으로 "서버 쪽 리디렉션"형식을 사용해야합니다. 이것은 기본적으로 서버에 다운로드 한 다음 클라이언트가 서버에서 다운로드한다는 것을 의미합니다. 이 작업을 수행 할 정당한 이유가 없다면 매우 비효율적입니다. – Earlz

답변

3

Server.Transfer을 사용하여 요청 처리를 다른 페이지로 전송하십시오.

전송 방법을 사용하면 모든 기본 제공 개체에 대한 상태 정보가 전송에 포함됩니다. 즉, 변수 또는 세션에 값이 할당 된 객체 또는 응용 프로그램 범위가 유지됩니다. 또한 요청 컬렉션에 대한 현재 내용은 모두 전송을받는 .asp 파일에서 사용할 수 있습니다.

Server.Transfer는 Response.Redirect 메서드를 효율적으로 대체하는 역할을합니다. Response.Redirect는 브라우저에 을 지정하여 다른 페이지를 요청합니다. 리디렉션은 새 페이지 을 강제로 요청하므로 브라우저는 웹 서버에 두 가지 요청을하므로 웹 서버가 추가 요청을 처리합니다. IIS 5.0은 Server.Transfer라는 새로운 기능을 도입하여 서버의 에있는 다른 ASP 페이지로 실행을 전송합니다. 이렇게하면 추가 요청이 발생하지 않으므로 시스템 성능이 향상되고 사용자 환경이 향상됩니다.

브라우저가 다른 요청을하지 않기 때문에 URL은 브라우저에서 완전히 숨겨져 있지만 리디렉션 URL이 제공하는 파일은 계속 가져옵니다.

+0

그게 내 웹 서버에있는 파일을 완벽하게 만들었습니다. 리디렉션 할 때 0 정보가 표시됩니다. –

+0

스트림을 리디렉션하는 방법과 함께이 방법이 내부 및 외부 링크를 모호하게 만듭니다. http://stackoverflow.com/questions/12339322/response-redirect-a-download-in-progress/12362804 –

1

간단한 이유 : 클라이언트가 파일을 다른 소스에서 직접으로 다운로드하게하려면 클라이언트에 대한 정보를 어떤 방식 으로든 클라이언트에 전달해야합니다. 클라이언트가 위치를 모르면 거기에서 다운로드 할 수 없습니다.

난독 화 방식으로 시도해도 클라이언트 브라우저에서 디코딩이 가능하면 방화범이 끌린 사람이 해독 할 수 있습니다.

+0

매우 사실입니다. 마지막으로 외부 링크 용으로 만든 것은 외부 파일을 버퍼로 다운로드하고 버퍼를 다운로드하는 동안 응답에 버퍼를 작성하여 스트림을 리디렉션하는 것입니다. –