我已查看过很多关于此错误的帖子,但尚无法解决问题。
我在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;
我哪里错了?
答案 0 :(得分:24)
我个人遇到此问题的唯一一次是我不小心将[Authorize]
添加到布局中使用的子操作。在您的登录操作中添加[Authorize]
会产生相同的效果,或者只是忽略在您的登录操作中添加[AllowAnonymous]
,当它所在的控制器上有[Authorize]
时。多长时间,这是由于需要在页面实际登录时需要授权的东西引起的,这会导致您被重定向到登录页面,这需要授权,导致您被重定向到登录页面等。 / p>
TL;博士
[Authorize]
。[AllowAnonymous]
。[Authorize]
的控制器中,请确保其中{@ 1}}或[AllowAnonymous]
没有。答案 1 :(得分:11)
启用Windows身份验证时出现此错误。我想基于Windows登录授权用户,我不想在我的应用程序中登录页面。
我通过在我的Web配置文件中添加以下内容来修复错误。
在标记system.web
下,将身份验证mode="None"
更改为身份验证mode="Windows"
在标记appSettings
下,添加了key="owin:AutomaticAppStartup" value="false"
答案 2 :(得分:5)
您可能在启动时具有将您重定向到登录页面的功能。你必须禁用它。 我通过默认身份验证方法创建了项目,该方法创建了一个帐户控制器及其依赖项。现在,当我将身份验证方法更改为Windows模式时,引发了上述错误。现在我唯一做的就是在startup.cs文件中评论ConfigureAuth(app)函数
答案 3 :(得分:1)
我遇到了同样的问题..
在项目属性下检查..
Anonymous Authentication=False
Windwos Authentication=True
答案 4 :(得分:0)