HTTP错误404.15 - 未找到...因为查询字符串太长

时间:2015-02-12 17:17:51

标签: asp.net-mvc iis windows-authentication

我已查看过很多关于此错误的帖子,但尚无法解决问题。

我在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 \ Authentication部分中,我已设置为禁用&#34;匿名身份验证,ASP.Net模拟和表单身份验证&#34;。在IIS.Net授权规则部分中,我设置了Deny&#34; Anonymous Users&#34;并允许&#34;所有用户&#34;

我哪里错了?

5 个答案:

答案 0 :(得分:24)

我个人遇到此问题的唯一一次是我不小心将[Authorize]添加到布局中使用的子操作。在您的登录操作中添加[Authorize]会产生相同的效果,或者只是忽略在您的登录操作中添加[AllowAnonymous],当它所在的控制器上有[Authorize]时。多长时间,这是由于需要在页面实际登录时需要授权的东西引起的,这会导致您被重定向到登录页面,这需要授权,导致您被重定向到登录页面等。 / p>

TL;博士

  1. 确保您的登录/登录操作 没有[Authorize]
  2. 确保您的登录/登录操作 [AllowAnonymous]
  3. 如果布局或登录页面中使用的子操作位于装有[Authorize]的控制器中,请确保其中{@ 1}}或[AllowAnonymous]没有。

答案 1 :(得分:11)

启用Windows身份验证时出现此错误。我想基于Windows登录授权用户,我不想在我的应用程序中登录页面。

我通过在我的Web配置文件中添加以下内容来修复错误。

  1. 在标记system.web下,将身份验证mode="None"更改为身份验证mode="Windows"

  2. 在标记appSettings下,添加了key="owin:AutomaticAppStartup" value="false"

答案 2 :(得分:5)

您可能在启动时具有将您重定向到登录页面的功能。你必须禁用它。 我通过默认身份验证方法创建了项目,该方法创建了一个帐户控制器及其依赖项。现在,当我将身份验证方法更改为Windows模式时,引发了上述错误。现在我唯一做的就是在startup.cs文件中评论ConfigureAuth(app)函数

答案 3 :(得分:1)

我遇到了同样的问题..

在项目属性下检查..

Anonymous Authentication=False
Windwos Authentication=True

答案 4 :(得分:0)

我们遇到了类似的问题,并且我们的授权过滤器已正确实现。我将其保留在这里,以防其他人在IIS 10中遇到相同的问题。

在获得Microsoft支持之后,我们确定未在服务器级别启用.Net授权规则。

IIS 10 .Net Authorization Rule