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

Rob*_*man 18 iis asp.net-mvc 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>
Run Code Online (Sandbox Code Playgroud)

我从IIS或F5访问该站点我收到错误:HTTP错误404.15 - 未找到请求筛选模块配置为拒绝查询字符串太长的请求.我注意到有些东西已经循环以提供一个ReturnUrl,它是查询字符串中的重复长连接.

在IIS\Authentication部分中,我已设置为禁用"匿名身份验证,ASP.Net模拟和表单身份验证".在IIS.Net授权规则部分中,我设置为拒绝"匿名用户"并允许"所有用户"

我哪里错了?

Chr*_*att 26

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

TL;博士

  1. 确保您在/ login动作标志具备[Authorize].
  2. 确保您的登录/登录操作确实[AllowAnonymous].
  3. 确保布局或登录页面中使用的子操作[Authorize]没有,[AllowAnonymous]如果它们位于装饰的控制器中[Authorize].

  • 谢谢克里斯,我有一个startup.cs,它已重定向到帐户/登录。问题的原因是我在创建网站时为身份验证选择了错误的选项-我选择的是个人帐户,而不是Windows身份验证。我发现解决问题的最佳方法是创建一个新的Web应用程序,选择Windows身份验证,然后比较两者的配置。 (2认同)

小智 12

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

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

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

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

  • 我和你一样处于同样的境地.在`<appSettings>`下添加`<add key ="owin:AutomaticAppStartup"value ="false"/>`就可以了.谢谢! (4认同)

Mah*_*oud 6

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