DevMedia - asp.net, Java, Delphi, SQL e web Design, tudo em um só lugar!
Bem vindo a DevMedia!
LOGIN:     SENHA:
 
 

Manutenção de Estado das Informações no ASP.Net

No ASP.NET existem várias formas para manter o estado das informações. O estado é o valor atual de todos os controles e variáveis do usuário atual na sessão atual.

No ASP.NET existem várias formas para manter o estado das informações. O estado é o valor atual de todos os controles e variáveis do usuário atual na sessão atual. Em ambientes Web como é o caso do ASP.NET, as páginas são criadas e destruídas cada vez que o usuário solicita a mesma ao servidor, por causa dessas características, variáveis declaradas no formulário Web não mantêm o seu valor depois que a página é exibida, o que significa que quando uma página é enviada ao servidor, e em seguida, retornada para o navegador, ela é recriada do zero e o estado será perdido e todos os controles serão criados com os valores padrão.

O ASP.Net possui alguns métodos para manter o estado das informações entre as páginas, como a utilização de “Cookies” onde as  informações são armazenadas na máquina do usuário, porém o usuário poderá desabilitar no Navegador a utilização de “Cookies”, ou ainda o uso das “Query Strings” onde as informações são passadas através da barra de navegação do navegador,  sendo assim visível para os usuários, o que não é aconselhado quando se deseja passar informações seguradas.

O foco desse artigo é apresentar três métodos de manutenção do estado das informações no ASP.Net, como vemos na lista abaixo:

§         ViewState: armazenagem de informações em forma de campos ocultos na página;

§         Session:  mantem os dados durante a visita do usuário na aplicação;

§         Application: mantem os dados disponíveis para todos os usuários da aplicação

Inicialmente vamos abordar o ViewState ou Estado de Exibição.

O estado da página e de todos os seus controles e é mantido automaticamente entre as postagens pelo ASP.Net. Dessa forma quando uma página é postada para o servidor, o estado de exibição é lido e antes da página ser restaurada para o navegador, ele é restaurado. O estado de exibição é guardado no depósito de dados através de campos ocultos (hidden fields). O valor padrão para o ViewState é true e poderá ser desativado caso não seja necessário manter o estado de exibição de uma página, melhorando dessa forma seu desempenho. Para desativar o estado de exibição de uma página, deverá ser adicionado o atributo EnableViewState com um valor igual a False na diretiva Page:

<%@ Page Language="VB" EnableViewState = "false"%>

Uma outra forma de ativar ou desativar o estado de exibição dos controles ASP.Net é através da propriedade EnableViewState.

 

estpagaspnetfig01.JPG

Figura 1 – Habilitando/Desabilitando a propriedade ViewState.

 

O exemplo abaixo ilustra a utilização do ViewState que é usado no evento Page_Load para armazenar a data de acesso a página.

 

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

 

        If Not Page.IsPostBack Then

 

          ViewState("Acesso") = Date.Now.Date()

 

        End If

     

End Sub

 

O Estado de Sessão (Session) permite manter o estado dos dados ao nível de usuário, ou seja, enquanto o usuário estiver conectado em uma aplicação. O objeto Session armazena os dados temporariamente para cada usuário que acessa a aplicação, assim, toda vez que um usuário abre uma página ASP.NET, o ASP.NET verifica se o usuário já possui um objeto Session, se não existir o ASP.NET criará um objeto.

O Objeto Session pode armazenar qualquer tipo de dado e normalmente é utilizado para armazenar informações que serão usadas na aplicação durante toda a visita do usuário. O tempo de vida de um objeto Session é reiniciado a cada requisição de uma página, mas este objeto só é destruído após um período de ociosidade do aplicativo Web.  Você poderá também configurar um período de tempo(timeout) para expirar a sessão caso o sistema fique ocioso.

No código abaixo temos um exemplo do uso de variável de sessão, onde os dados do usuário são validados e são criados dois objetos de Sessão para armazenar o Login do usuário e o Horário que foi efetuado a entrada no sistema.

Protected Sub Button1_Click1(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click

 

        If ValidaUsuario(txtLogin.Text, txtSenha.Text) = True Then

            Session("Login") = txtLogin.text

            Session("HorarioLogin") = Date.Now.Date

        End If

End Sub

Na ilustração abaixo, temos o evento Load de um formulário que receberá o conteúdo das variáveis de Sessão declaradas no evento Button1_Click1.

Protected Sub Page_Load(ByVal sender As Object, ByVal e As   System.EventArgs) Handles Me.Load

        If Not Page.IsPostBack Then

lblUsuario.Text = "Olá " & Session("Login") & " bem vindo ao  Sistema. Você efetuou login as " & Session("HorarioLogin")

        End If

End Sub

Por último temos o Estado de Aplicação ou Application. Este objeto é usado para manter dados disponíveis para qualquer dos usuários da aplicação, independente do momento em que o usuário acessar a informação, armazenando as informações enquanto a aplicação existir. Neste caso, o ASP.NET cria um objeto do tipo Application na primeira vez que um usuário qualquer acessar a aplicação, e destroi o objeto quando a aplicação é reiniciada.

Para exemplificar a utilização de um objeto Application, temos o código abaixo que guarda login do usuário que acessou o sistema, mantendo dessa forma na variável de aplicação o último usuário que efetuou acesso ao sistema.

Protected Sub Page_Load(ByVal sender As Object,

                        ByVal e As System.EventArgs) Handles Me.Load

 

        If Not Page.IsPostBack Then

            Application("UltimoAcesso")= Session("Login")

        End If

End Sub

Essas são algumas das maneiras de trabalhar com o estado das informações no ASP.NET, cabendo ao desenvolvedor analisar a melhor situação para o desenvolvimento da aplicação.

Até o próximo !

Regilan Meira





    3 COMENTÁRIOS

[Fechar]

Este post é fechado - você precisa ter acesso ao post para incluir um comentário.



Geraldo Moura
Amigo, Como faço para expirar uma pagina em asp.net ?


em 1/2/2007 09:51 - Responder

 

Carolina
Ola! So estou passando pra dizer que este artigo me ajudou bastante! Eu desenvolvi uma aplicacao ASP.NET relativamente grande usando cookies para controlar nivel de acesso de usuario. Descubro eu que quando ha mais de um usuario accessando a aplicacao o cookie perde sentido de ser... rs.. ou seja, a aplicacao sempre ve o cookie do ultimo usuario a entrar no sistema. Depois de ler varios artigos e ingles e nao encontrar uma solucao rapida e facil para o problema achei seu artigo! Troquei meu cookie por session e esta tudo bem! Vc me salvou varias horas e unhas roidas! Muito Grata! :-)


em 14/4/2007 08:12 - Responder

 

  Regilan
Olá Carolina...Muito obrigo..Fico feliz em saber que os meus artigos estão sendo lidos e tem ajudado em nosso dia-dia de desenvolvedor de sistemas. Grande Abraço!


em 9/5/2007 19:09 - Responder
 



[Este post ainda não foi associado a uma sequência]
Publicidade
Autor
Regilan Meira Silva

Regilan Meira Silva (regilan@gmail.com), é Bacharel em Ciência da Computação pela Universidade Estadual de Santa Cruz(UESC) em Ilhéus, Bahia e Especialista em Administração de Sistemas da Informação pela Universidade Federal de Lavras em Lavras, Minas Gerais. Trabalha com desenvolvimento de sistemas...


Space do autor
Estatísticas
Favorito:
Comentários:
Feedback:
Utilidade:
1   0
[Fechar]

Você precisa estar logado para dar um feedback.

Clique aqui para efetuar o login
[Fechar]


Este post está fechado. Saiba mais sobre a assinatura MVP!
web-03
DevMedia  |  Anuncie  |  Fale conosco
Hospedagem web por Porta 80 Web Hosting
2012 - Todos os Direitos Reservados a web-03