2014-10-15 15 views
0

내가 한 ASP 페이지html로 헤더 : 대신 다운로드 파일 열기 그것을

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load 
    Response.AppendHeader("content-disposition", "attachment; filename=PublicKeyCertificate.cer") 
    Response.ContentType = "application/x-x509-ca-cert" 
    Response.BinaryWrite(Session("cerbytes")) 
    Response.End() 
End Sub 

이 코드 다운로드합니다 .cer 파일에서이 코드가 있습니다. 그것을 다운로드하는 대신, 여는 방법이 있습니까? content-type을 application/pdf로 설정하면 대부분의 브라우저가 새 탭에서 pdf를 엽니 다. 나는 cer 파일과 똑같이 할 수 있습니까?

+0

사용자가 PDF 판독기 (예 : Adobe Reader, Foxit 등)를 사용하는 경우에만 pdf가 새 탭에서 열립니다. 당신이 요구하는 보안 위험을 상상할 수 있습니까? 컴퓨터에 파일을 다운로드하고 자동으로 실행하는 웹 사이트를 탐색하는 방법에 대해 생각해보십시오. 그걸로 행복하니? – Dementic

+0

@Dementic 응답 해 주셔서 감사합니다. 나는 그것을 알고 있었다. 그러나 Windows는 기본적으로 cer 파일을 열 수 있으며 추가 플러그인이 필요하지 않으며 파일이 다운로드되고 열리지 않습니다. 따라서 동작이 동일해야하며 새 탭에서 파일을 엽니 다. – Rumpelstinsk

답변

1

당신은이 :

Response.AppendHeader("content-disposition", "attachment; filename=PublicKeyCertificate.cer") 

the spec에서 : 처분 유형은 "첨부 파일"(대문자와 소문자를 구별하지 않고로)과 일치하는 경우

,이받는 사람이 응답을 저장하라는 메시지를 표시해야 함을 나타냅니다 (미디어 유형에 따라) 정상적으로 처리하지 않고 로컬로 처리해야합니다.

반면에 "inline"(대소 문자를 구분하지 않음)과 일치하면 이 기본 처리를 의미합니다. 따라서 처리 유형 "인라인"은 파일 이름 (아래 참조)과 같은 추가 매개 변수가 추가 된 경우에만 유용합니다.

콘텐츠 처분을 inline이 아닌 attachment으로 설정해야합니다.

브라우저는 기본 처리 방법을 사용하여 브라우저에서 처리합니다. 대부분의 경우, 이것은 적절한 환경 설정 윈도우 (내부 인증서 처리가있는 브라우저의 경우) 또는 인증서 관리를위한 시스템 도구 (인증서 처리를 위해 OS에 연결되는 브라우저의 경우)에서 열립니다.

+0

그건 속임수 였어. 감사 – Rumpelstinsk