使用Windows身份validation在ASP.NET应用程序的子文件夹上禁用身份validation

是否有可能使用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中资源(文件夹或单个文件)的访问,因此您需要确保没有冲突的规则。