我已经检查了很多有关此错误的信息,但还不能解决问题。
我有在Windows 8 pro上运行的VS2013中构建的简单MVC5网站。创建站点后,将选择单个帐户的选项。现在,我需要启用Windows身份验证,以便只有AD帐户用户才能使用该网站并获得授权,以便可以将对某些视图/控制器的访问限制为特定的AD组。
在VS中选择了Web项目后,我更新了属性窗口(F4),以便将“匿名身份验证”设置为“禁用”,将“ Windows身份验证”设置为“已启用”。
项目的web.config现在包含以下部分:
<system.web>
<authentication mode="Windows" />
<compilation debug="true" targetFramework="4.5" />
<httpRuntime targetFramework="4.5" />
<authorization>
<deny users="?" />
</authorization>
</system.web>
<system.webServer>
<modules>
<remove name="FormsAuthenticationModule" />
</modules>
</system.webServer>
我从IIS或F5访问该站点,但出现错误:HTTP错误404.15-未找到
请求过滤模块被配置为在查询字符串太长的情况下拒绝请求。我注意到,有些东西已经循环生成一个ReturnUrl,这是查询字符串中重复的长时间串联。
在“ IIS \身份验证”部分中,我已设置为禁用“匿名身份验证,ASP.Net模拟和表单身份验证”。在IIS.Net授权规则部分中,我已设置为拒绝“匿名用户”并允许“所有用户”
我要去哪里错了?
最佳答案
我个人遇到此问题的唯一时间是当我不小心将[Authorize]
添加到布局中使用的子动作时。将[Authorize]
添加到您的登录操作中将具有相同的效果,或者只是忽略了它所在的控制器上带有[AllowAnonymous]
的登录操作上的[Authorize]
。总而言之,这是由需要在实际登录页面上授权的内容引起的,然后导致您重定向到登录页面,需要授权,从而导致您重定向到登录页面,等等。
tl; dr
确保您的登录/登录操作没有[Authorize]
。
确保您的登录/登录操作没有[AllowAnonymous]
。
确保在布局或登录页面中使用的子操作中没有[Authorize]
或[AllowAnonymous]
(如果它们在用[Authorize]
装饰的控制器中)。
关于asp.net-mvc - HTTP错误404.15-找不到...因为查询字符串太长,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28483745/