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

时间:2011-09-01 12:49:02

标签: asp.net iis 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 Handler   StaticFile错误代码0x80070005请求的URL   http://srv/Errors/error401.htm物理路径   D:\ www \ MyApp \ Errors \ error401.htm登录方法尚未确定   登录用户尚未确定

如何对我的网站进行基本身份验证,但允许每个人访问错误目录?

1 个答案:

答案 0 :(得分:0)

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>

修改

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

编辑2 (在IIS7中针对经典模式进行了更改)