我正在获得重定向循环,我不知道为什么。我使用这个简单的代码,以便如果有人去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();
}
}
答案 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引用是相同的。愚蠢的错误,但如果你有这个问题,一定要检查它!