IIS7에서/topFolder/가상 폴더가 있다고 가정하면 브라우저에 표시 할 수있는 파일 (xml, html, swf, doc 등 - 일반적으로 IIS 관점에서 "관리되지 않는"리소스). 요청을 폴더 아래에있는 파일을 열 수있는 권한을 부여하기 전에 일부 세션 변수를 검사하여 사용자에게 해당 하위 폴더 및 파일에 대한 "라이센스"가 있는지 확인해야합니다.ASP.net의 정적 파일 및 인증
IHttpModule 및 IReadOnlySessionState 인터페이스를 사용하여 모듈을 구현하려고 시도했지만 파일이 "정적"이고 aspx, ashx 등의 IIS 관리가 아닌 경우 AcquireRequestState 이벤트에서 항상 세션이 null입니다.
사용자 지정 HttpHandler를 사용하는 경우 세션을 가져 오지만 콘텐트가 응답으로 보내지는 방법을 구현해야합니다. 편집 : 사용자가 파일을 다운로드하지 않기 때문에 StaticFileModule과 마찬가지로 IIS가 파일을 제공하기를 원합니다. 세션 및 라이센스 등을 확인 가) 확인되면 역할을 계속 파일 : 요청/topFolder/*를 들어 : 1. 처리기/모듈 정말
그래서 정말 다음을 수행 할 ... StaticFileModuleWithAuthorizationHook해야한다 b) 그렇지 않다면, 요청을 인터럽트하거나 응답으로 FORBIDDEN을 보냅니다.누군가가 도움을 줄 수 있기를 바랍니다.
감사합니다. 그러나 이것은 조금 다릅니다. URL http://myserver.com/topFolder/something/foo.html 이미지를 다운로드하지 않습니다. 파일을 제공하지만, 세션을 확인하고 일부 데이터베이스 왕복을 한 후에 만 가능합니다. 기본적으로 사용자 지정 보안이 있어야하는 가상 디렉터리입니다. –
그런 경우에는 response.writebytes를 작성하고 파일을 작성하고 헤더를 컨텐츠 처리를 설정하도록 설정하지 마십시오. –
랜덤 콘텐츠로는 작동하지 않습니다. .swf 파일을 사용하면 브라우저에서 렌더링 방법을 모르고 바이너리 문자로 렌더링합니다. 저는 실제로 IIS가 내 수표를 보낸 것처럼 IIS가 렌더링/제공되기를 원하며 브라우저가 임의의 콘텐츠를 렌더링하는 방법에 관심을 두지 않습니다. –