Artigo Clube Delphi 96 - Controle on-line de vídeo-locadora - Parte 4
Nesse artigo veremos o uso de sessão no ASP.NET, armazenamento de variáveis em sessão e um controle de quais usuários se encontram on-line.
Controle on-line de vídeo-locadora
Veja como criar um sistema on-line de controle para uma vídeo-locadora - Parte 4
· Uso de sessão no ASP.NET;
· Armazenamento de variáveis em sessão;
· Controle de quais usuários se encontram on-line.
· Fazer com que o Web Site determine quais usuários estão atualmente logados.
· Muitos Web Sites utilizam esse recurso, inclusive fazendo log de ações que determinado usuário logado efetuou.
Continuando o desenvolvimento da nossa aplicação ASP.NET com Delphi for .NET, sobre um sistema on-line de vídeo-locadora, atendendo algumas solicitações que recebi por e-mail, veremos agora como realizar um controle de usuários on-line e logados no sistema, exibindo o resultado em números e também lista de nomes. Mão na massa!
Exibindo usuários logados no sistema
Observados geralmente em fóruns de discussão, a lista de nomes dos usuários logados é uma interessante maneira de saber quais os usuários que estão interagindo com o sistema naquele exato momento. Da mesma forma, o número de usuários ativos em uma aplicação é uma informação importante para o cálculo de estatísticas de acessos a um portal. Mas você deve estar se perguntando, como vou poder controlar todos os usuários que acessam minha página? Em que momento devo contabilizar a visita deste usuário? Como saber se o usuário ainda permanece no sistema? Onde armazenar a lista de usuários que estão on-line? São estas as perguntas que responderei a seguir através de uma implementação prática em nosso projeto, mostrando o passo-a-passo que deverá ser seguido para obter o resultado final.
O controle de acesso de usuários a uma página é realizado através de eventos que ocorrem de forma automática simultâneo à solicitação do acesso. <?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />Em aplicações ASP.NET temos durante o desenvolvimento a disponibilidade de uma página para que possamos fazer diversas configurações, que geralmente se aplicam a todas as demais páginas do sistema. É nessa página, a "Global.asax", que existem métodos que são ativados ao início da aplicação, quando uma sessão de usuário ativo é verificada e métodos que verificam quando um determinado usuário excedeu seu limite de tempo estabelecido na aplicação sem realizar tarefas ou simplesmente deixou o sistema para navegar em outra página e/ou fechou o navegador web.
No Delphi 2006, com o seu projeto de locadora aberto, verifique no Project Manager a disponibilidade da "Global.asax" e veja em suas declarações de código ("Global.pas") os métodos Application_Start, Session_Start e Session_End referenciados ao início de execução da aplicação, início de uma seção gerada por acesso de usuário e fim de seção de usuários respectivamente. Serão nestes procedimentos que programaremos os códigos para controle e exibição da quantidade e nome dos usuários a navegar pela página.
Para cada acesso, os próprios controles do .NET Framework se responsabilizam por criar uma sessão, um ID único para cada usuário. É através desta chave que identificaremos cada um dos usuários. Criada pelo procedimento Session_Start a chave permanece inalterada durante todo tempo que o usuário permanecer ativo.
Para usuários ociosos no sistema, estabelecemos um tempo limite de conexão, onde o mesmo permanece conectado e ultrapassando o tempo, sua seção será automaticamente excluída, removendo-o da lista de usuários ativos. Através desta funcionalidade conseguiremos identificar os momentos em que um usuário se conecta, o período que permanece ativo e o momento em que sua sessão é encerrada, deixando o sistema. Mas, onde armazeno estas informações? – Estas informações ficarão armazenadas em uma tabela do banco de dados, onde para cada ação de usuário um novo registro contendo o ID da sessão e nome do usuário será gravado. Durante todo o tempo que ele permanecer on-line o registro ficará estável, e ao deixar a aplicação, no evento Session_End sua identificação será localizada e excluída do banco de dados.
A tabela a ser criada na base de dados é simples, contendo dois campos apenas (ID e Nome do Usuário), onde o código a seguir deverá ser executado através do Editor de SQL ligado à base de dados. O código irá criar a tabela "USUARIOS_ON-LINE" e dentro da mesma os Fields ID_USUARIO e "