我已经从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上放置一个断点,断点永远不会被击中。
必须有更高的东西导致重定向。
答案 0 :(得分:6)
以下是我如何使用它。
在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>
注意:请注意当前位于同一文件夹中的其他页面并相应地设置访问权限。