2009-09-14 7 views
2

특정 확장명을 가진 파일이 아닌 특정 파일에 대한 액세스를 방지하기 위해 하나의 특정 파일 만 시도합니다. 문제는 최종 사용자가 /filename.xml을 브라우저에 입력하면이 파일의 내용을 볼 수 있기 때문에이 파일을 볼 수 없다는 것입니다.ASP.NET 사이트의 파일에 대한 공용 액세스 제한


상황은 내가 시도 :

1)파일을 두는 곳

내 호스팅 계정의 일환으로 "안전한"폴더가 있습니다. 그래서 나는 단지 경로를 ".. \ .. \ .. \ SSL \ FileName.xml"로 변경하고 파일을 거기로 옮긴다는 것을 알았습니다. ASP.NET은 오류가있는이 일에 충돌 :

  • 는 사용할 수 없습니다 선두 .. 그래서 그 보안을 위해 장소에서의 추정 상단 디렉토리

위에 종료합니다. Web.config의에서

2)위치

나는 Web.config의에서 이것을 사용하려고 그래서 다음 :

<location path="FileName.xml"> 
    <system.web> 
     <authorization> 
     <deny users="*"/> 
     </authorization> 
    </system.web> 
    </location> 

이 아무것도하지 않는 것 ... 왜 그랬는지 아는 사람? 나는이 응용 프로그램에서 특별히 ASP.NET 인증을 사용하지 않고 있는데 이것이 작동하지 않는 이유는 무엇입니까? 나는 굉장히 절름발이 호스팅 계정을 가지고 접근

아아을 방지하기 위해 IIS를 사용하여

3), 나는 IIS에 액세스 할 수 없습니다.


그래서 아무도 내가 위의 시도 잘못 뭘하는지 모르거나 내가 시도 할 수있는 다른 솔루션이 있습니까?

kthxbye!

답변

8

응용 프로그램에 ASP.Net 폴더 "App_Data"를 추가하고 거기에 XML 파일을 넣을 수 있습니까? 이 폴더는 특히 이러한 유형의 데이터를 보관하고 브라우저/사용자로부터 숨기고 응용 프로그램 범위 내에 보관하는 것을 의미합니다. 은 ".XML"파일 확장자가 ASP.Net 파이프 라인에 의해 처리되지 않기 때문에 당신의 web.config 파일에서 인증 지정이 작동하지 않는 이유에

alt text http://img178.imageshack.us/img178/7708/appdata.png

, 그것은이다. 해당 보안 지시문을 적용하기 위해 ASP.Net 요청 핸들러를 통해 xml 파일에 대한 모든 요청을 보내도록 IIS를 구성해야합니다.

0

IIS xml 파일을 처리하지 않으므로 (요청자에게 보내기 만하므로) 보안이 작동하지 않습니다. 놀랍게도 모노 플랫폼에서 작동합니다 ...어쨌든, 당신은 할 수 있습니다이 해결 방법 : 정말 보안 폴더 접근에

  1. 저장 파일이 영문 페이지 (매개 변수로 파일 이름) DB에서
  2. 저장 파일을 사용하고 휴식 같은 1 개
  3. 저장소 파일에 어떤 호스팅 계정 폴더에 GUID 이름을 지정한 다음 DB에 GUID와 실제 파일 이름 연결을 저장하고 aspx 페이지를 통해 파일 다운로드를 처리하십시오.
관련 문제