我正在VS 2017中开发一个WebForms项目,我想添加Forms Authentication,以便匿名用户无法访问特定页面(称为Resources)。到目前为止,我的登录页面正在登录用户,经过身份验证的用户可以访问资源,所有用户都可以浏览我的未受保护的页面。
这是我的问题:每当匿名用户尝试访问资源时,都会发生服务器错误,而不是重定向到“登录”页面。在IIS Express中,错误消息是“HTTP错误401.0 - 未经授权。您无权查看此目录或页面”。在本地IIS中,它显示“错误消息401.2:未授权:登录因服务器配置而失败。请确认您有权根据您提供的凭据和Web服务器上启用的身份验证方法查看此目录或页面。< / em>的
我相信浏览器和服务器正在尝试使用不同的方法进行身份验证,但我无法弄清楚如何解决这个问题。
在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>
我错过了一些明显的东西吗?我应该检查其他设置吗?非常感谢任何帮助!