HTTP错误404.15请求过滤模块配置为拒绝查询字符串太长的请求

时间:2014-06-30 17:22:30

标签: asp.net

我已经从Visual Studio 2013创建了一个全新的Web表单应用程序,并在web.config文件中设置了以下内容:

<authentication mode="Forms">
    <forms defaultUrl="~/Home.aspx" loginUrl="~/Login.aspx" 
        slidingExpiration="true" timeout="2880" />
</authentication>
<authorization>
  <deny users="?" />
</authorization>

当我运行项目时,我收到404.15错误 这不是MVC网站。
我发现了一个类似的错误,说我需要删除“拒绝用户”,但我不想那样做。
如果未经过身份验证,我需要将所有用户定向到登录页面。
* New Asp.Net MVC5 project produces an infinite loop to login page *
我也试过这个,但我得到“这个网页有一个重定向循环”
* How to configure the web.config to allow requests of any length *

编辑:添加了更多链接来解释问题 所以我找到了关于登录页面循环的文章。
* http://erlend.oftedal.no/blog/?blogid=55 *
因此,如果我在ProcessRequest上添加一个断点,我可以看到有一个无限循环调用Login.aspx页面。
所以问题似乎不是URL太长,而是有一个无限循环调用Login.aspx页面。
如果我在Login.aspx页面的Page_Load上放置一个断点,断点永远不会被击中。
必须有更高的东西导致重定向。

2 个答案:

答案 0 :(得分:6)

以下是我如何使用它。

  1. 排除了除“Login.aspx”以外的“帐户”文件夹下的所有项目
  2. “App_Start”文件夹下排除的IdentityConfig和Startup.Auth
  3. “模型”文件夹下的已排除的IdentityModel
  4. 在应用程序的“root”文件夹下排除“Startup”
  5. 注释掉Login.aspx代码文件中“Page_Load”和“LogIn”下的所有代码
  6. 使用Login.aspx标记中的“OpenAuthProviders”注释掉代码
  7. 在web.config文件

    中的“appSettings”部分添加了以下密钥

    &LT; add key =“owin:AutomaticAppStartup”value =“false”/&gt;

答案 1 :(得分:3)

解决方案并非完全停用整个身份验证系统。

问题可能是由于访问控制在使用FriendlyUrls模块时未正确设置Login.aspx权限。所以你必须强制登录页面的权限由友好&#34;友好&#34;名称。在其存储的登录页面的文件夹中,可能已经是您可能设置的web.config文件:

<?xml version="1.0"?>
<configuration>
  ...

  <location path="Login">
    <system.web>
      <authorization>
        <allow users="*"/>
      </authorization>
    </system.web>
  </location>
  <location path="Login.aspx">
    <system.web>
      <authorization>
        <allow users="*"/>
      </authorization>
    </system.web>
  </location>
  ...

</configuration>

注意:请注意当前位于同一文件夹中的其他页面并相应地设置访问权限。