我在 IIS 上有一个文本文件目录。我想隐藏此目录。
我已将 web.config 设置如下:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.web>
<authorization>
<deny users="*" /> <!-- Denies all users -->
</authorization>
</system.web>
</configuration>
但我仍然可以看到文件的完整目录列表,以及通过网络访问这些文件。
我设置错了什么?
我也尝试过这个:
<system.webServer>
<security>
<authorization>
<remove users="*" roles="" verbs="" />
<add accessType="Allow" roles="Administrators" />
</authorization>
</security>
</system.webServer>
但这也对我没什么帮助
答案1
system.web节点只影响asp.net文件,*.txt文件不受其影响。
要对所有用户隐藏文件,IIS 7.x 中有几种方法,下面是两种:
在相关目录内的 web.config 中:
<system.webServer>
<security>
<requestFiltering>
<fileExtensions>
<add fileExtension=".txt" allowed="false" />
</fileExtensions>
</requestFiltering>
</security>
</system.webServer>
或者
<system.webServer>
<security>
<requestFiltering>
<hiddenSegments>
<add segment="directoryname" />
</hiddenSegments>
</requestFiltering>
</security>
</system.webServer>
第一个隐藏所有文本文件,第二个隐藏整个 url 路径,两者都向用户返回 404。
如果您想允许某些用户访问这些文件,这些方法将不起作用。您使用哪种身份验证?