2014-01-27 6 views
-2

Когда пользователь сталкивается с определенным типом ошибок, на Global.asax мы обновляем переменную сеанса IsErrorEncountered, сохраняем сеанс и перенаправляем пользователей обратно на страницу Dashboard. На странице Dashboard, когда я пытаюсь получить доступ к этой переменной сеанса, она не отражает изменения, внесенные в Global.asax. Почему сеанс не сохраняется? Может кто-нибудь скажет мне, могу ли я даже обновить сеанс из Global.asax?Сохранение сеанса в Global.asax

Sub Application_Error(ByVal sender As Object, ByVal e As EventArgs) 

    Dim session As SessionData = HttpContext.Current.Session("SessionData") 
    sessionData.IsErrorEncountered = True 
    HttpContext.Current.Session.Add("SessionData", session) 

    HttpContext.Current.Response.Redirect("~/Dashboard/Index") 

End Sub 
+0

И ваш вопрос ... пожалуйста, отредактируйте. –

+0

* Этот код в Global.asax. *. Неа. Это не. –

+0

Извините, я думаю, что я слишком быстро попал в Enter – Neel

ответ

0

Возможно, что при переадресации ваш токен-файл cookie сеанса теряется. Попробуйте использовать перегруженную версию метода Response.Redirect:

Sub Application_Error(ByVal sender As Object, ByVal e As EventArgs) 

    Dim session As SessionData = HttpContext.Current.Session("SessionData") 
    sessionData.IsErrorEncountered = True 
    HttpContext.Current.Session("SessionData") = session 

    HttpContext.Current.Response.Redirect("~/Dashboard/Index", false) 
    HttpContext.Server.ClearError(); 
End Sub 
+0

Session.Add() также обновляет сеанс, если находит ключ «SessionData». Я попробовал ваше решение, и оно не сработало. – Neel

+0

Я обновил свой ответ с решением, которое должно сработать для вас –

+0

Пробовал решение. Не работает! – Neel

Смежные вопросы