是否有可能使用Windows身份validation禁用ASP.net应用程序的一个或多个子文件夹上的Windows身份validation?
例如:
一个网站包含几个其他文件夹,其中包含整个应用程序的一部分:/前端,/后端,/login
bin文件夹与这些子文件夹(即网站的根目录)处于同一级别。
所有这些子文件夹都包含使用驻留在网站根目录的bin文件夹中的二进制文件的页面。
用户在访问后端文件夹中的页面时必须inputWindows凭据,而不是在login或前端文件夹中访问页面时inputWindows凭据。
我正在使用IIS7
有任何想法吗?
find了解决办法:
调整applicationHost.config文件,并将anonymousAuthentication和windowsAuthentication节条目的“overrideModeDefault”更改为“Allow”
<section name="anonymousAuthentication" overrideModeDefault="Allow" /> <section name="windowsAuthentication" overrideModeDefault="Allow" />
在web.config中为每个需要从Windows身份validation中排除的文件夹/文件添加位置标签
<location path="pathToDirOrFile"> <system.webServer> <security> <authentication> <anonymousAuthentication enabled="true" /> <windowsAuthentication enabled="false" /> </authentication> </security> </system.webServer> </location>
确保这些文件夹中的每一个都包含一个单独的web.config文件,用于禁用身份模拟
<configuration> <system.web> <identity impersonate="false" /> </system.web> </configuration>
您可以使用web.config中的位置标记来控制身份validation,或者将另一个web.config放入指定您需要应用的设置的相关子文件夹中。
您还可以控制对IIS中资源(文件夹或单个文件)的访问,因此您需要确保没有冲突的规则。