Как проверить переменную сеанса в asp.net 4.0? - PullRequest
0 голосов
/ 21 декабря 2011

Я работаю над веб-приложением asp.net (с c #), и здесь у меня проблема.

Что у меня есть страница клиента (customer.aspx), и на этой странице пользователь может заполнить свою информацию, а пользователь также может обновить, если это уже зарегистрированный пользователь.

Поэтому, когда эта страница загружается, я проверяю, вошел ли пользователь в систему или не использует переменную сеанса, и если эта переменная сеанса установлена, то пользователь может обновить свою информацию, а вот код проверки на customer.aspx

  protected void Page_Load(object sender, EventArgs e)
        {
            if (Session["customerID"] != null)
            {
               //here is my code
            }

        }

но проблема в том, что если мой пользователь нажимает на кнопку «Выйти», то все идет хорошо, но если пользователь просто нажимает кнопку «Назад» в моем браузере (IE 7.0), то ему разрешается обновлять свою информацию, и этого не должно происходить. Поэтому, пожалуйста, сообщите мне решение этой проблемы.

мой код logout.aspx здесь:

protected void Page_Load(object sender, EventArgs e)
        {
            Session.Clear();
            Session.RemoveAll();
            Session.Abandon();
            Response.Redirect("login.aspx");
        }

поэтому, пожалуйста, предложите мне решение этой проблемы.

Ответы [ 2 ]

1 голос
/ 21 декабря 2011

Очистить кэш

Response.Cache.SetExpires(DateTime.UtcNow.AddMinutes(-1)); 
Response.Cache.SetCacheability(HttpCacheability.NoCache); 
Response.Cache.SetNoStore();

эта ссылка может вам помочь

0 голосов
/ 21 декабря 2011

Скорее всего, браузер кэширует страницу, а не перезагружает страницу.

Убедитесь, что кэширование отключено, и для обеспечения безопасности проверьте состояние сеанса при загрузке страницы и перенаправьте его, если ононе заполнено.

        Response.AppendHeader("Cache-Control", "no-cache"); //HTTP 1.1 
        Response.AppendHeader("Cache-Control", "private"); // HTTP 1.1 
        Response.AppendHeader("Cache-Control", "no-store"); // HTTP 1.1 
        Response.AppendHeader("Cache-Control", "must-revalidate"); // HTTP 1.1 
        Response.AppendHeader("Cache-Control", "max-stale=0"); // HTTP 1.1  
        Response.AppendHeader("Cache-Control", "post-check=0"); // HTTP 1.1  
        Response.AppendHeader("Cache-Control", "pre-check=0"); // HTTP 1.1  
        Response.AppendHeader("Pragma", "no-cache"); // HTTP 1.1  
        Response.AppendHeader("Keep-Alive", "timeout=3, max=993"); // HTTP 1.1  
        Response.AppendHeader("Expires", "Mon, 26 Jul 1997 05:00:00 GMT"); // HTTP 1.1 
        Response.Cache.SetCacheability(HttpCacheability.NoCache);
...