请求筛选模块被配置为拒绝包含的查询字符串过长的请求。
2015-05-08 19:34
387 查看
仔细观察,发现请求的url是酱紫的:
[code]http://localhost:58228/Account/Login?ReturnUrl=%2FAccount%2FLogin%3FReturnUrl%3D%252FAccount%252FLogin%253FReturnUrl%253
原来是Account/Login在return url里一直重复,难怪请求字符串过长呢!
检查web.config发现如下配置:
[code]<authorization> <deny users="?" /> </authorization>
这表示拒绝匿名用户访问
再看AccountController中的代码:
[code][AllowAnonymous] public ActionResult Login(string returnUrl) { ViewBag.ReturnUrl = returnUrl; return View(); }
前面的标注又是允许匿名,矛盾华丽丽的产生了!
web.config中的那段代码可以删么?删了不等于国门大开么!
AccountController中的
[AllowAnonymous]也不能删,否则匿名用户不能访问登录页面,难道你想活活的急死他么?
怎么办?
其实要换个思路来看这个问题,如果我在web.config中配置了loginUrl,那么自然而然的,它指向的登录页面默认就应该是允许匿名的,所以应该从
<deny users="?" />中排除。
实际上,发现web.config中已经包含了这样的配置
[code]<forms loginUrl="~/Pages/HomePage.html" name=".ASPXFORMSAUTH" />
问题是,为什么匿名访问时,页面不是跳转到
~/Pages/HomePage.html而是跳到
/Account/Login呢?
在
App_Start\Startup.Auth.cs中发现这样一行代码:
[code]LoginPath = new PathString("/Account/Login")
将其修改为
[code]LoginPath = new PathString("/Pages/HomePage.html")
搞定!
相关文章推荐
- HTTP 错误 404.15 - Not Found 请求筛选模块被配置为拒绝包含的查询字符串过长的请求。
- IIS7.0下 HTTP 错误 404.15 - Not Found 请求筛选模块被配置为拒绝包含的查询字符串过长的请求
- IS7.0下 HTTP 错误 404.15 - Not Found 请求筛选模块被配置为拒绝包含的查询字符串过长的请求
- 请求筛选模块被配置为拒绝包含的查询字符串过长的请求
- IIS7.0下 HTTP 错误 404.15 - Not Found 请求筛选模块被配置为拒绝包含的查询字符串过长的请求
- HTTP 错误 404.15 - Not Found 请求筛选模块被配置为拒绝包含的查询字符串过长的请求。
- 解决请求筛选模块被配置为拒绝包含的查询字符串过长的请求
- HTTP 错误 404.15 - Not Found 请求筛选模块被配置为拒绝包含的查询字符串过长的请求。
- 请求筛选模块被配置为拒绝包含的查询字符串过长的请求。
- IIS7.0下 HTTP 错误 404.15 - Not Found 请求筛选模块被配置为拒绝包含的查询字符串过长的请求
- HTTP 错误 404.15 - Not Found 请求筛选模块被配置为拒绝包含的查询字符串过长的请求。
- 404.15 - Not Found 请求筛选模块被配置为拒绝包含的查询字符串过长的请求
- 请求筛选模块被配置为拒绝包含的查询字符过长的请求,解决方案!
- •Web 服务器上的请求筛选被配置为拒绝该请求,因为查询字符串过长。
- Web 服务器上的请求筛选被配置为拒绝该请求,因为查询字符串过长
- 请求筛选模块被配置为拒绝包含 hiddenSegment 节的 URL 中的路径,解决方案
- 请求筛选模块被配置为拒绝包含双重转义序列的请求。---该问题的解决办法之一
- IIS7.0、IIS7.5、IIS8.0等提示“请求筛选模块被配置为拒绝包含双重转义序列的请求”的解决方法小结
- 【工具设置】解决“请求筛选模块被配置为拒绝包含双重转义序列的请求”错误
- HTTP 错误 404.8 - Not Found,请求筛选模块被配置为拒绝包含 hiddenSegment 节的 URL 中的路径