したがって、これはシナリオです。
ログイン制御されたすべてのページの基本クラスがあります。
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:otherpage.aspxのregularpage.aspxのいくつかのプロパティにアクセスする必要があるため、転送を使用します。これに対して別のソリューションを提供できるかもしれません。