我使用Visual Studio 2015创建了一个MVC Web应用程序。我的目标是根据需要将身份验证模式从none更改为Windows身份验证,以便我可以使用@ User.Identity.Name方法来识别用户。我迄今为止尝试过的简短摘要:
<authentication mode="Windows"/>
代码<system.web>
添加system.webServer标记(无论何时添加它都会在ERR_TOO_MANY_REDIRECTS中结束):
<system.webServer>
<security>
<requestFiltering>
<requestLimits maxUrl="10999" maxQueryString="2097151" />
</requestFiltering>
</security>
</system.webServer>
我尝试从头开始创建一个新项目,并在项目设置期间整齐地选择Windows身份验证。这很好用,所以我相信我的IISExpress设置是100%正确。我甚至检查了applicationhost.config文件,它没有我的特定项目的条目。同样,如果我在创建新项目时选择了正确的身份验证,它的工作正常。
当我尝试运行Visual Studio项目时,上述所有内容似乎都无法正常运行并且最终导致IIS错误:
HTTP Error 404.15 - Not Found
The request filtering module is configured to deny a request where the query string is too long.
这是IIS错误页面中的URL:
正如你所知,我得到了一个无限的重定向循环,这可能就是为什么我无法让它工作的原因。但我确实不知道是什么导致了它。非常感谢任何帮助。
答案 0 :(得分:6)
猜猜我能够回答我自己的问题,因为我刚刚开始工作。对于将来遇到类似错误的人来说,可能会派上用场。
解决方案:我必须在App_Start / Startup.Auth.cs中注释掉以下代码:
app.UseCookieAuthentication(new CookieAuthenticationOptions
{
AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
LoginPath = new PathString("/Account/Login")
});
app.UseExternalSignInCookie(DefaultAuthenticationTypes.ExternalCookie);
答案 1 :(得分:1)
您还可以检查C:\ Users [您的用户名] \ Documents \ IISExpress \ Logs [应用程序名称],查看请求期间使用的任何错误详细信息或URL。