2009-05-14 4 views
2

우리는 클라이언트가 로그인하여 볼 ​​온라인 보고서를 제공합니다. 보고서는 SQL Server 데이터베이스에서 필요한 숫자를 가져 오는 ASP 페이지입니다. 클라이언트의 액세스 세부 정보는 SQL Server의 테이블에서도 관리됩니다.암호로 NTFS 파일 권한을 사용하지 않고 IIS의 파일을 보호합니다.

과거에는 클라이언트가 온라인 보고서에서 액세스하고자하는 하나 이상의 PDF 또는 기타 파일이있었습니다. 이들은 단순히 ASP 파일 폴더 내의 하위 폴더에 업로드되고 관련 ASP 페이지에서 링크되었습니다.

해당 파일에 액세스하려는 사용자가 로그인했는지 확인하려는 경우 -이를 수행 할 수있는 방법이 있습니까? 그 파일이 데이터베이스에 저장되어야한다고 생각합니다. 다른 사람들이 이것을 어떻게 관리합니까?

답변

3

PDF를 db에 넣는 것은 불필요합니다. 대신 웹 폴더 외부의 위치에 PDF를 저장하십시오. 공공 장소에서 멀리 떨어진 곳에 있습니다. ID 번호가있는 각 PDF의 위치에 대해 DB에 레코드를 만듭니다. 사용자에 대한 인증 시스템이 이미 있다고 가정하면 액세스 권한이있는 pdf의 recordid에 사용자 ID를 연결하는 다른 테이블을 작성하십시오. 여기에서이 액세스 테이블에 대한 자격 증명을 확인하는 페이지를 만드는 간단한 문제가 있습니다. db 및 응답 바이너리로 제공되는 파일 위치를 여는 것입니다. 웹에 대해 흩어져있는 몇 가지 예를 찾을 수 있습니다. 그러나 ASP 클래식에는 RAM에 파일 전체를 저장하는 성가신 습관이 있습니다.이 파일을 전송하면 믿을 수 없을만큼 리소스를 늘릴 수 있습니다. 가능하다면 ASP.Net 스크립트를 사용하는 것이 좋습니다. 코드는 훨씬 더 쉽게 너무

Server.TransferFile() 
+0

그것의 바이너리를 읽기 위해 ASP에 보편적으로 사용할 수 있지만 유일한 구성 요소를 (클라이언트에 응답 버퍼링 및 청크를 해제 할 수 있습니다) RAM에 파일을 저장하지 ASP 클래식 파일은 ADODB.Stream입니다. 불행하게도 대부분의 파일을 메모리에 저장하는 것은 아닙니다. – AnthonyWJones

+0

감사합니다 스펜서 - 엄청난 도움을주었습니다. – Dan

관련 문제