0

我得到一个重定向循环,我不知道为什么。我使用了这个简单的代码,因此如果有人转到 default.aspx 并且已经登录,它应该将他们重定向到 inside.aspx。为什么我会收到重定向循环?

public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (User.Identity.IsAuthenticated) // if the user is already logged in
        {
            Response.Redirect("inside.aspx");
        }
    }

}

编辑:

两个页面都使用以下代码共享一个母版页,只有在按下注销控件时才会关闭:

public partial class template : System.Web.UI.MasterPage
{
    protected void Page_Load(object sender, EventArgs e)
    {

    }

    protected void LoginStatus1_LoggingOut(object sender, LoginCancelEventArgs e)
    {
        Response.Redirect("default.aspx");
        Session.Abandon();
    }
}
4

2 回答 2

1

我假设您的问题是当您尝试注销时,该页面再次重定向到默认页面。原因是您在重定向后清除会话,因此不会调用 Session.Abandon()。但我不知道您的身份验证是否真的依赖于 Session.Abandon() 在这种情况下您将再次看到重定向。

protected void LoginStatus1_LoggingOut(object sender, LoginCancelEventArgs e)
        {
            Session.Abandon();
            Response.Redirect("default.aspx");
        }

如果您使用会员资格提供程序,请查看可配置为在用户注销后自动重定向的 defaultUrl。要手动触发注销,请使用 FormsAuthentication.SignOut()。

于 2013-06-21T20:23:43.040 回答
0

问题是这两个文件的 CodeFile 引用是相同的。愚蠢的错误,但如果你有这个问题,一定要检查一下!

于 2013-06-24T16:27:39.783 回答