允许匿名访问使用Windows身份验证的IIS站点中的目录

本文关键字:IIS 站点 身份验证 访问 许匿名 Windows | 更新日期: 2023-09-27 18:14:20

我有一个IIS8网站运行ASP。. NET 4.0使用Windows身份验证

在我的IIS身份验证设置中,除了Windows身份验证之外,所有的都被禁用了。用户能够正确地进行身份验证并按预期使用站点。

但是,我现在有一个Uploads文件夹,其中包含我想从其他应用程序向未经身份验证的用户公开的图像。

在我的网上。配置文件中有以下与身份验证/授权相关的行:

  <system.web>
    <authentication mode="Windows"/>
  </system.web>
  <location path="Uploads">
    <system.web>
       <authorization>
          <allow users="*" />
       </authorization>
    </system.web>
  </location>

我如何允许匿名访问上传文件夹,同时保持Windows认证的一切?目前,他们必须登录到另一个应用程序,然后当从有问题的网站访问图像时,他们必须进行身份验证才能访问它们。

同样,位置路径是相对于web的。配置文件正确吗?

编辑:不确定这是否重要,但是我们的网站对内对外都是可用的。如果从我们域内的计算机访问,它会自动登录,如果是不在域内的计算机,它们会被重定向到登录页面。

允许匿名访问使用Windows身份验证的IIS站点中的目录

我在另一个问题上找到了答案:允许在web.config中的单个文件夹进行匿名身份验证?

  1. 首先,我必须进入C:'Windows'System32'inetsrv'config'applicationHost.config
  2. 搜索这一行,将"Deny"改为"Allow"
  3. 然后把下面的代码放到web中。配置文件
代码:

<location path="Path/To/Public/Folder">
  <system.webServer>
    <security>
      <authentication>
        <anonymousAuthentication enabled="true" />
      </authentication>
    </security>
  </system.webServer>
</location>

你需要做的是删除匿名的"Deny"规则,因为它被继承了,它仍然会阻止用户,比如:

<system.webServer>
    <security>
        <authorization>
            <remove users="?" roles="" verbs="" />
            <allow users="*" />
        </authorization>
    </security>
</system.webServer>

确实,位置路径是相对于web文件所在的文件夹的。

我也刚刚注意到你正在使用系统。网络而不是系统。webServer,这是你应该使用的。