我正在VS 2017中开发一个WebForms项目,我想添加Forms Authentication,以便匿名用户无法访问特定页面(称为Resources) . 到目前为止,我的登录页面正在登录用户,经过身份验证的用户可以访问资源,所有用户都可以浏览我的未受保护的页面 .

Here's my problem: 每当匿名用户尝试访问资源时,都会发生服务器错误,而不是重定向到“登录”页面 . 在IIS Express中,错误消息是"HTTP Error 401.0 - Unauthorized. You do not have permission to view this directory or page" . 在本地IIS中,它显示“错误消息401.2:未授权:由于服务器配置而导致登录失败 . 验证您是否有权根据您提供的凭据和Web服务器上启用的身份验证方法查看此目录或页面 .

我相信浏览器和服务器正在尝试使用不同的方法进行身份验证,但我无法弄清楚如何解决这个问题 .

在IIS管理器中,我启用了表单和匿名身份验证,并禁用了我的网站的其他方法 . 对于匿名身份验证,我尝试将用户设置为IUSR以及应用程序池标识,同时在具有完全安全权限的DefaultAppPool上运行 - 两者都不起作用 . 对于Forms auth,参数匹配我的web.config文件,即同名和登录URL(不确定是否重要) .

这是我的web.config中的身份验证和授权代码:

<authentication mode="Forms">
    <forms name=".ASPXAUTH" defaultUrl="Index.aspx" loginUrl="Login.aspx" />
  </authentication>
</system.web>
<location path="Resources.aspx">
  <system.web>
    <authorization>
      <deny users="?" />
      <allow users="*" />
    </authorization>
  </system.web>
</location>

我错过了一些明显的东西吗我应该检查其他设置吗?任何帮助都非常感谢!