2010-03-09 2 views
2

사용자가 일회성 URL에 액세스 할 수있는 시나리오가 있습니다. 사용자가 URL을 클릭하면 특정 파일을 해당 사용자가 사용할 수 있습니다.ASP.NET에서 개별 파일 보안하기

사이트에 파일이 많지만 특정 파일에만 해당 사용자가 액세스 할 수 있기를 원합니다.

인증 된 쿠키를 생성하고 양식 기반 인증을 사용하고 특정 폴더에 사용 권한을 적용하는 방법에 대한 정보가 있지만 개별 파일에 대한 인증이 필요합니다. 파일은 지속적으로 변경 될 것입니다.

사용자에게 특정 파일에만 대한 액세스 권한을 부여하는 가장 좋은 방법은 무엇입니까? (다른 파일을 표시하지는 않지만 URL에 입력하면 다른 파일을 사용할 수 없습니다.)

답변

3

.ashx (처리기 파일)를 만들고이를 사용자에게 제공하고 (메모리에로드 한 다음 파일을 콘텐츠 스트림으로 푸시하여 내용을 쓰도록합니다). 그렇게하면 최종 사용자는 시스템의 실제 파일에 대한 권한을 가질 수 없지만 여전히 액세스 할 수 있습니다. 그러면 코드가 사용자가 각 파일을 사용할 수있는 시간과 시간을 제어 할 수 있습니다.

+0

@eli : Kevin처럼 처리기를 사용해야한다고 말합니다. 비슷한/관련 질문을 게시했습니다. http://stackoverflow.com/questions/1958574/asp-net-file-downloading-track-download-size. 그 대답이 도움이되기를 바랍니다 – ram

+0

예 핸들러는 완벽한 시나리오입니다. 그것은 내 제안과 똑같이 작동 할 것입니다. –

1

실제 파일 검색과 관련된 추상화를 제공합니다. 그런 식으로 사용자는 파일 이름을 결코 보지 못합니다. www.example.com/File.aspx?id=SOMERANDOMGUID와 같은 것

해당 RANDOMGUID가 백엔드의 파일을 참조 할 수 있습니다.

0

디스크 공간이 많은 경우이 작업을 수행하는 방법 중 하나는 임의로 생성 된 폴더에 파일을 복사하여 사용자 파일의 URL이 각 사용자마다 고유하도록하는 것입니다.

0

파일이 ID와 연결되어 있고 경로가 데이터베이스에 보관되어 있으면 더 쉬울 것이라고 생각합니다. 이렇게하면 ID를 사용하여 파일을 가져올 수 있습니다.

관련 문제