我已经检查了很多有关此错误的信息,但还不能解决问题。

我有在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/

10-10 22:52