C# 形式验证错误

C# 形式验证错误,c#,asp.net,web-applications,forms-authentication,basic-authentication,C#,Asp.net,Web Applications,Forms Authentication,Basic Authentication,我的根目录www中有两个页面:Login.aspx和Default.aspx。如果身份验证正确,我将从Login.aspx重定向到Default.aspx。它工作得很好 但是如果我写urlhttp://localhost:4188/www/Default.aspx 在web浏览器地址栏的新选项卡上,它直接显示Default.aspx,而不重定向到Login.aspx 我的web配置文件如下所示: <authentication mode="Forms"> <forms defa

我的根目录www中有两个页面:Login.aspx和Default.aspx。如果身份验证正确,我将从Login.aspx重定向到Default.aspx。它工作得很好

但是如果我写urlhttp://localhost:4188/www/Default.aspx 在web浏览器地址栏的新选项卡上,它直接显示Default.aspx,而不重定向到Login.aspx

我的web配置文件如下所示:

<authentication mode="Forms">
<forms defaultUrl="default.aspx" loginUrl="~/login.aspx" timeout="20"></forms>
</authentication>
<authorization>
<allow users="user"/>
<deny users="*"/>
</authorization>

原因可能是您已经登录。尽量减少超时时间,过一会儿再检查

或尝试http://localhost:4188/www/Default.aspx 从另一个浏览器


如果上述任一项工作正常,则这不是问题。由于您已经登录,即使是在同一浏览器的新选项卡中,您也会被重定向到默认页面。若您尝试注销并访问默认页面,那个么应用程序会将您重定向到登录页面

如果取消对登录用户的身份验证,则可以解决此问题。您可以在default.aspx上设置一个名为“注销”的按钮,并按如下方式编程onClick事件:

 protected void logOffonClick(object sender, EventArgs e)
        {
            FormsAuthentication.SignOut();
            FormsAuthentication.RedirectToLoginPage();
        }

确认您尚未登录,在default.aspx页面上放置loginview控件并进行检查。在另一个浏览器中,它将重定向到login.aspx。如何强制使其过期?Go cookieless=>在每个url中嵌入身份验证票证。这是分隔两个不同窗口/选项卡的唯一方法,至少在两个不同窗口/选项卡中不使用相同的票证。。