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