Web.config를 사용하여 하위 디렉터리에 대한 액세스 차단

Web.config를 사용하여 하위 디렉터리에 대한 액세스 차단

ASP.NET 프로젝트에 유틸리티 파일이 포함된 하위 디렉터리가 있습니다. 런타임 시 코드에 필요하지만 웹을 통해 표시되는 것을 원하지 않습니다.

단일 하위 디렉터리와 해당 콘텐츠에 대한 모든 사용자의 액세스를 차단하는 Web.config 파일의 구문은 무엇입니까?

답변1

IIS 7에는 새로운 "요청 필터링" 기능이 있습니다. 숨겨진 세그먼트 구성을 사용하고 싶을 수도 있습니다.

<configuration>
 <system.webServer>
  <security>
   <requestFiltering>
    <hiddenSegments>
     <add segment="BIN"/>
    </hiddenSegments>
   </requestFiltering>
  </security>
 </system.webServer>
</configuration>

이로 인해http://귀하의 사이트/빈서비스를 제공할 수 없습니다(그러나http://귀하의 사이트/바이너리여전히 작동합니다)

확인해 보세요: http://learn.iis.net/page.aspx/143/how-to-use-request-filtering

답변2

문제는 IIS가 단순히 파일을 반환하는 경우 ASP.Net이 결코 방해할 기회를 얻지 못한다는 것입니다. 나는 양식 기반 인증을 활성화하고 상당한 혼란을 겪으면 이를 수행할 수 있다고 생각하지만 파일을 wwwroot 폴더 외부로 이동하기만 하면 됩니다.

JR

답변3

이것은 작동합니다:

<configuration>
  <location path="FolderName">
    <system.web>
      <authorization>
        <deny users="*"/>
      </authorization>
    </system.web>
  </location>
</configuration>

답변4

web.config오래된 질문이지만 이는 웹 서버 경로의 모든 디렉터리에 대한 간단한 드롭인입니다 . 모든 사용자 역할을 제거한 다음 기본 액세스를 거부로 설정합니다. 간단하고 구성이 필요하지 않습니다.

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <security>
            <authorization>
                <remove users="*" roles="" verbs="" />
                <add accessType="Deny" users="*" />
            </authorization>
        </security>
    </system.webServer>
</configuration>

관련 정보