Not Found ...因为查询字符串太长

我已经检查了很多关于这个错误的帖子,但还没有能够解决这个问题。

我有在Windows 8专业版上运行的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部分中,我已设置为禁用“匿名身份验证,ASP.Net Impersonisation和表单身份验证”。 在IIS.Net授权规则部分中,我设置为拒绝“匿名用户”并允许“所有用户”

我哪里错了?


我唯一遇到这个问题的时候是不小心将[Authorize]添加到布局中使用的子操作。 如果在登录操作中添加[Authorize] ,将会产生相同的效果,或者只是在您登录操作时忽略添加[AllowAnonymous]允许[AllowAnonymous] ,而当它所在的控制器上有[Authorize]时。 总而言之,这是由于实际登录页面需要授权而导致的,这会导致您被重定向到需要授权的登录页面,导致您被重定向到登录页面等。

TL;博士

  • 确保您的登录/登录操作没有[Authorize]
  • 确保您的登录/登录操作确实具有[AllowAnonymous]
  • 确保布局或登录页面中使用的子操作没有[Authorize]或者如果它们位于装有[Authorize]的控制器中,则具有[AllowAnonymous]允许[AllowAnonymous] [Authorize]

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

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

  • 在标签system.web ,将认证mode="None"改为认证mode="Windows"

  • 在标签appSettings ,添加了add key="owin:AutomaticAppStartup" value="false"


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

    链接地址: http://www.djcxy.com/p/42111.html

    上一篇: Not Found ...because the query string is too long

    下一篇: HTTP Error 414. The request URL is too long. asp.net