2016-12-30 3 views
0

페이지의 경우 .net 웹 응용 프로그램의 페이지를 표시하기 전에 사용자가 세션을 사용하여 로그온했는지 확인할 수 있습니다. 그러나 URL이 파일에 대한 링크 인 경우 사용자가 로그인되어 있고 서버에서 직접 파일을 다운로드하는지 확인할 수 없습니다. 나는 성공없이 Global.asax를 통해 쿠키 또는 세션을 확인하려고했습니다.asp.net 웹 응용 프로그램에서 파일에 대한 액세스 권한을 부여하기 전에 쿠키 또는 세션을 확인하십시오.

편집 : 서버를 통한 인증이 아니라 세션을 통한 인증을 찾고 있습니다. Web.config 솔루션이 여기에 적용되지 않을 것입니다 그래서 데이터베이스에 사용자 로그인 있습니다.

사용자가 내 서버의 파일이나/documents 같은 특정 디렉토리 아래의 URL에 액세스하기 전에 세션이나 쿠키를 확인할 수 있습니까?

예 : /test.aspx 페이지에 액세스하기 위해 세션이 존재하는지 확인하고 그렇지 않은 경우 로그인 페이지로 직접 이동할 수 있습니다.

/docs/file.pdf와 같은 파일에 액세스하려면 동일한 확인을 수행 할 수 없습니다.

+0

가능한 [asp.net에서 파일 및 폴더에 직접 액세스하지 못하도록하는 방법?] (영문 일 수 있음) /http://stackoverflow.com/questions/26968328/how-to-prevent-direct-access-to-files-and -folders-in-asp-net) – Xiaoy312

+1

쿠키는 클라이언트 컴퓨터에 저장되며 일반 텍스트 파일로 악의적 인 사용자가 쉽게 수정할 수 있습니다. 따라서 쿠키는 보안에 민감한 데이터를 저장할 수있는 안전한 장소가 아닙니다. 액세스 제어를 위해 쿠키를 사용하지 마십시오. – Sparrow

답변

0

사용자가 처음 URL에서 파일 이름을 얻는 방법을 잘 모르겠습니다. 아마도 그것은 당신이 변해야 할 필요가 있습니다. 테이블을 추가하고 GUID와 파일 이름을 테이블에 저장할 수 있으면 url이 GUID를 매개 변수로 전달할 수 있습니다. 서버 측에서는 GUID를 실제 파일에 매핑하고 파일을 반환하기 전에 세션의 유효성을 검사 할 수 있습니다.

+0

파일은 /docs/file.pdf와 유사하므로 사용자가 막기 원하는 브라우저에 URL을 입력하면됩니다. 그래서 URL에 액세스하기 전에 먼저 로그인하도록하는 솔루션을 찾고 있습니다. GUID 솔루션은 불행하게도 매우 복잡합니다. –

관련 문제