IIS7을 사용하면 web.config xml 파일을 사용하여 디렉토리별로 구성 할 수 있습니다. 웹에 액세스하기를 원하지 않는 구성 파일이있는 디렉토리가 있습니다. 이에 대한 읽기 액세스를 금지하는 로컬 web.config 파일은 훌륭한 솔루션입니다.
파일에 대한 웹 액세스를 금지하려면 web.config 파일의 내용은 무엇입니까?
편집 : 이 내용이있는 web.config 파일을 파일에 넣으려고합니다.
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.web>
<authorization>
<deny users="*" /> <!-- Denies all users -->
</authorization>
</system.web>
</configuration>
그러나 여전히 디렉토리 내의 파일에 직접 액세스 할 수 있습니다. 무슨 일이야? 무슨 일이 일어나고 있는지 어떻게 디버깅합니까?
답변
system.web을 사용하고 있습니다. IIS7에서는 대신 system.webServer를 사용해야합니다. 이렇게하면 ASP.NET 파일뿐만 아니라 모든 유형의 파일이 차단됩니다. 예를 들어 jpg, gif, txt 및 모든 유형의 파일을 비밀번호로 보호 할 수 있습니다.
다음과 같이 보일 것입니다 :
<system.webServer>
<security>
<authorization>
<remove users="*" roles="" verbs="" />
<add accessType="Allow" roles="Administrators" />
</authorization>
</security>
</system.webServer>
그리고 하나의 파일로 설정하려면 다음을 수행하십시오.
<location path="dontlook.jpg">
<system.webServer>
<security>
<authorization>
<remove users="*" roles="" verbs="" />
<add accessType="Allow" roles="Administrators" />
</authorization>
</security>
</system.webServer>
</location>
답변
나는 이것이 당신의 문제를 해결할 수 있다고 생각합니다.
이 web.config를 대상 디렉토리가 포함 된 디렉토리에 배치하십시오.
<configuration>
<system.webServer>
<security>
<requestFiltering>
<hiddenSegments>
<add segment="target directory name"/>
</hiddenSegments>
</requestFiltering>
</security>
</system.webServer>
</configuration>
답변
Web.config에서 위치 노드를 사용할 수 있습니다. 다음은 msdn에 대한 자세한 설명입니다 . 간단히 말해서 :
<location path="Subdirectory">
<system.web>
<authorization>
<deny users="*"/> <!-- Denies all users -->
</authorization>
</system.web>
</location>
<location path="Public_Directory">
<system.web>
<authorization>
<allow users="*"/> <!-- Allows all users -->
</authorization>
</system.web>
</location>
?를 사용할 수도 있습니다. 익명 사용자를 허용 (거부 / 거부)하도록 지정하는 와일드 카드
답변
*
모든 로그인 한 사용자를 의미합니다.?
익명 사용자를 의미합니다.
를 사용해야합니다 ?
.
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.web>
<authorization>
<deny users="?" />
</authorization>
</system.web>
</configuration>