登录时重定向到另一个页面时重定向循环

时间:2013-06-21 19:58:17

标签: c# asp.net visual-studio

我正在获得重定向循环,我不知道为什么。我使用这个简单的代码,以便如果有人去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();
    }
}

2 个答案:

答案 0 :(得分:1)

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

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

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

答案 1 :(得分:0)

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