所以这是场景:
我有一个所有登录控制页面的基类:
public class SessionControlledPage : Page
{
protected virtual void Page_Load(Object sender, EventArgs e)
{
Response.AddHeader("Refresh", Convert.ToString(Session.Timeout * 60 + 5));
if (Session.IsNewSession)
{
Response.Redirect("~/login.aspx");
}
}
}
还有一个regularpage.aspx
从基类继承的页面:
public partial class RegularPage : SessionControlledPage
{
override protected void Page_Load(Object sender, EventArgs e)
{
base.Page_Load(sender, e);
Server.Transfer("~/otherpage.aspx");
}
}
现在假设原始 URL 是http://localhost/regularpage.aspx和Session.Timeout = 5
. 传输发生后发生刷新时会出现问题。我收到一个错误,并且http://localhost/305404 Not Found
的 URL 发生了变化。请注意.5 * 60 + 5 = 305
你知道为什么会这样吗?有解决办法吗?
PD:我使用transfer是因为我需要访问otherpage.aspx上的regularpage.aspx的一些属性,也许你也可以为此提供另一种解决方案。