【发布时间】:2010-03-16 16:36:13
【问题描述】:
所以这是场景:
我有一个用于所有登录控制页面的基类:
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。传输发生后发生刷新时会出现问题。我收到404 Not Found 错误,http://localhost/305 的 URL 更改。请注意5 * 60 + 5 = 305。
你知道为什么会这样吗?有解决办法吗?
PD:我使用transfer是因为我需要访问otherpage.aspx上的regularpage.aspx的一些属性,也许你也可以为此提供另一种解决方案。
【问题讨论】:
标签: asp.net server.transfer response.addheader