так что это сценарий:
У меня есть базовый класс для всех контролируемых логином страниц:
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
, и URL-адрес изменяется для http://localhost/305. Обратите внимание, что 5 * 60 + 5 = 305
.
Знаете ли вы, почему это происходит? есть решение?
PD: я использую перевод, потому что мне нужно получить доступ к некоторым свойствам Regularpage.aspx на otherpage.aspx, возможно, вы могли бы предложить и другое решение для этого.