привет. Я так стараюсь для этого, я не могу понять большинство вопросов, так как это моя первая разработка в ASP.NET, вот моя проблема.
Im объявить переменную сеанса, когда пользователь нажимает представить на странице авторизации перенаправлять их somepage.aspxasp.net C# - настройка сеанса, а затем перенаправление пользователей через global.asax
if (dt.Rows.Count > 0)
{
Session["usersId"] = usersId;
Session["usersLevel"] = usersLevel;
Session["usersRegion"] = usersRegion;
Session["notification"] = "";
Response.Redirect("pages/Dashboard.aspx");
}
Таким образом, после того что я положил что-то в моем Web.config
<system.web>
<compilation debug="true" targetFramework="4.0"/>
<sessionState timeout = "1" mode = "InProc" />
</system.web>
Так конечно сессия истекает?/timeout? то в моем Global.asax
я поставил этот
void Session_End(object sender, EventArgs e)
{
Response.Redirect("Login.aspx");
}
Однако HttpExeception
поднимается, что говорит
Ответ не доступен в этом контексте.
Почему ответ не доступен? когда он сказал, что режим sessionstate должен быть установлен в InProc
? Я просто хочу, чтобы пользователь будет перенаправлен на этой странице, когда сессия истекает/тайм-аут (я не знаю их различие, но выглядит так же для меня)
спасибо
Попробуйте использовать 'HttpContext.Current.Response.Redirect' вместо' Response.Redirect' в 'Session_End' метод для перенаправления на страницу входа. –
@TetsuyaYamamoto нет, что не сработает. Ответ на это событие отсутствует, потому что он не вызван запросом. – mason
Вы не перенаправляете пользователей на страницу входа, когда страница истекает, по крайней мере, не с сервера. В следующий раз, когда они сделают запрос, вы можете перенаправить их, если хотите, потому что это будет в контексте запроса/ответа. Или вы можете попытаться отслеживать на стороне клиента JavaScript, если их сеанс активен или нет, но это, как правило, становится беспорядочным. – mason