nev*_*ves 15 iis iis-7 .htaccess web.config
我知道 IIS7 允许我使用 web.config xml 文件对每个目录进行配置。我有一个目录,其中包含一些不想通过网络访问的配置文件。禁止读取访问的本地 web.config 文件将是一个不错的解决方案。
web.config 文件的内容应该是什么来禁止 Web 访问这些文件?
编辑:我正在尝试将包含这些内容的 web.config 文件放在一个文件中:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.web>
<authorization>
<deny users="*" /> <!-- Denies all users -->
</authorization>
</system.web>
</configuration>
Run Code Online (Sandbox Code Playgroud)
但是我仍然可以直接访问目录中的文件。它出什么问题了?我如何调试正在发生的事情?
Sco*_*MVP 12
您正在使用 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>
Run Code Online (Sandbox Code Playgroud)
如果您只想将其设置为 1 个文件:
<location path="dontlook.jpg">
<system.webServer>
<security>
<authorization>
<remove users="*" roles="" verbs="" />
<add accessType="Allow" roles="Administrators" />
</authorization>
</security>
</system.webServer>
</location>
Run Code Online (Sandbox Code Playgroud)
小智 6
我认为这可以解决您的问题。
将此 web.config 放在包含目标目录的目录中:
<configuration>
<system.webServer>
<security>
<requestFiltering>
<hiddenSegments>
<add segment="target directory name"/>
</hiddenSegments>
</requestFiltering>
</security>
</system.webServer>
</configuration>
Run Code Online (Sandbox Code Playgroud)
您可以使用 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>
Run Code Online (Sandbox Code Playgroud)
您还可以使用 ? 通配符指定您应该(允许/拒绝)匿名用户
归档时间: |
|
查看次数: |
53704 次 |
最近记录: |