2010-11-26 3 views
1

1-й запрос ...... У меня есть переменная session cityId, через которую я нахожу всю запись. Когда я оставляю свое приложение без присмотра на какое-то время, тогда сеанс заканчивается &, он получает значение для города &, затем выбрасывает исключение. Как я могу перенаправить на страницу с ошибкой, когда сеанс заканчивается следующим образом.Задача сеанса ASP.NET

второй запрос

Когда я нажимаю некоторые страницы (myprofile.aspx), то я проверяет, является ли пользователь loged или нет, если пользователь не loged в то перенаправление на страницу входа & если loged в то показать страницу Если я даю пользователю логин, если пользователь не подключился для просмотра файла myprofile.aspx, то при использовании журналов в нем он должен перейти непосредственно на страницу myprofile.aspx, а не на то, что я предоставил после входа в систему.

Помогите мне.

+0

Возможно, вам следует разделить это на два отдельных вопроса. – LukeH 2010-11-26 11:29:26

ответ

2

Ans первого вопроса необходимости обрабатывать следующие события в global.asax файле

Session_End

Session_End Событие вызывается всякий раз, когда один сеанс пользователя завершается или тайм-аут.

Ans второго вопроса необходимость обрабатывать следующие события в global.asax файле

Application_AuthenticateRequest

Событие Application_AuthenticateRequest указывает на то, что запрос готов пройти проверку подлинности. Если вы используете аутентификацию по формам, это событие можно использовать для проверки ролей и прав пользователя.

+0

Спасибо за решение. – usr021986 2010-11-26 12:03:24

+0

Можете ли вы предоставить код для ссылки или дать ссылку – usr021986 2010-11-26 12:05:46

0

Как я могу перенаправить на страницу с ошибкой , когда сессия заканчивается следующим образом.

Я согласен с этим, если на вашей странице отображается конфиденциальная информация. В противном случае, скажем, пользователь просматривает страницу и, простаивая, вы просто сделали информацию, которую пользователь искал, исчезли. Конечно, у вас есть страница профиля в этом случае, но что, если пользователь просматривал какой-то отчет, требующий времени для загрузки? Затем вы заставите пользователя повторно запустить свой отчет о том, что у него уже есть результаты.

Вы можете использовать событие Session_End в файле Global.asax в качестве предлагаемого Pranay. С помощью AJAX или обычного JavaScript вы можете уведомить пользователя о том, что их сеанс близок к тайм-ауту/истечет время ожидания. Или, наоборот, вы можете подождать, пока исключение тайм-аута сеанса не будет сброшено после того, как пользователь попытается отправить сообщение и включит собственные ошибки в вашем web.config. Если вы по-прежнему настаивают на перенаправлении пользователя на тайм-аут сеанса, используйте это в вашем случае Session_End:

Response.Redirect("myRedirectPage.aspx",true); 

Вы хотели бы указать true в качестве второго параметра, чтобы закончить ответ после перенаправления.

Что касается вашего второго вопроса, есть несколько способов обработки логинов в ASP.NET.Если вы хотите, чтобы заботиться о сантехнике самостоятельно,

  • использовать событие Application_BeginRequest в файле Global.asax для проверки ли пользователь регистрируется в (т.е. Session["cityId"] ли нуль)
  • магазин вашу информацию о сеансе после войдите и используйте Response.Redirect до , переведите своего пользователя в профиль .

В противном случае, если вы хотите использовать встроенные функции ASP.NET, см. http://msdn.microsoft.com/en-us/library/ms178329.aspx.

Тогда просто используйте Request.UrlReferrer, как предложил Шринивас.

0

В моих приложениях я не перенаправляюсь, когда сессия заканчивается, но я перенаправляю на страницу входа в операцию NEXT, которую выполняет пользователь. Другими словами, они могут сидеть и смотреть на страницу в течение нескольких часов, и даже если сессия не закончится, ничего не произойдет - ДОЛЖНЫ просить другую страницу. В начале каждого page_load первое, что я делаю, это проверить, что они все еще «вошли в систему», и если они не перенаправлены:

protected void Page_Load(object sender, EventArgs e) 
    { 
     if (Session["myUser"] != null) 
      myUser = (User)Session["myUser"]; 
     else 
      Response.Redirect("Login.aspx?Mode=Timeout"); 
Смежные вопросы