IIS 7基本身份验证位置问题

我在IIS 7上有一个使用基本身份验证的网站 . 有些页面必须公开 . 我在web.config中的location元素中添加了一个这个异常,它看起来像这样:

<location path="Errors">
    <system.webServer>
      <security>
        <authorization>
          <remove users="*" roles="" verbs="" />
          <add accessType="Allow" users="*" />
        </authorization>
      </security>
    </system.webServer>
  </location>

但是,如果我尝试从该文件夹访问某些文件,我会收到此错误:

HTTP错误401.2 - 未经授权由于身份验证标头无效,您无权查看此页面 . 详细错误信息模块IIS Web核心通知AuthenticateRequest处理程序StaticFile错误代码0x80070005请求的URL http://srv/Errors/error401.htm物理路径D:\ www \ MyApp \ Errors \ error401.htm登录方法尚未确定登录用户尚未决心

如何在我的网站上使用Basic Auth,但允许每个人访问Errors目录?

回答(1)

2 years ago

IIRC,“?”是匿名用户...所以打开匿名身份验证,并把它放在你的web.config ...希望它适合你...

IIS7

<location path="Errors">
  <system.webServer>
    <security>
      <authorization>
        <remove users="*" roles="" verbs="" />
        <add accessType="Allow" users="*" />
      </authorization>
    </security>
  </system.webServer>
</location>

IIS6(或IIS7经典模式)

<location path="Errors">
  <system.web>
    <authorization>
      <allow users="?" />
    </authorization>
  </system.web>
</location>

EDIT

我不确定删除认证用户(*)的错误是个好主意,但是......经过身份验证的用户也可能会收到错误...向他们展示一些爱...;)

EDIT 2 (在IIS7中更改为经典模式)