Em um sistema desconectado isso pode gerar problemas sérios, mas, vamos lá:
A única forma de você saber se um usuário está ou não autenticado é salvando esta informação server-side no momento do logon e limpando-a no momento do logoff. A única forma viável de se fazer isso é através de Sessions (sejam ela do servidor http, sejam feitas manualmente). A principal característica de uma Sessão é que ela expira alguns minutos após ser criada, se não for constantemente atualizada. Aí temos 2 problemas: 1) O teu aplicativo deverá ficar invocando a sessão de tempos em tempos para certificar que ela não caia. 2) Se o usuário fechar o navegador (especialmente se não houver mais conexão com o servidor, i.e. a internet caiu), o logoff poderá não ser efetuado. O primeiro é fácil resolver... só fazer um acesso à sessão a cada função executada no servidor (e, de preferência, uma invocação do client ao server que não faz nada (PING) só para refrescar a sessão). O segundo é um pouco mais complicado... Neste caso, a sessão só terminará após vários minutos (padrão do ASP.net = 15 minutos). Então, no caso de uma deconexão, o usuário precisará esperar 15 minutos até conseguir entrar no sistema novamente. Outro ponto que deve ser levado em consideração (mas apenas em servidores compilados, PHP por ser interpretado fica fora desta) é que a sessão pode ser derrubada no evento de um restart do servidor (físico ou lógico). Então seus retornos deverão considerar uma sessão que caiu e interromper o aplicativo de acordo. Então, basicamente: 1) Salve a autenticação em Session 2) No evento de fechamento da página (em JavaScript), tente invocar o método para desautenticar 3) Mantenha uma sessão com tempo de expiração pequeno (digamos, 60 segundos) 4) Faça com que o Flex invoque um método para atualizar a sessão a cada, digamos, 50 segundos (um pouco menos do que o tempo para a sessão expirar). Cookies não servem neste caso, pois o cookie é específico do navegador. Mas, de qualquer forma, para suportar uma sessão HTTP real, o aplicativo deverá ser um CookieContainer, ou seja, Flex no navegador funciona bem, Flex no FlashPlayer (ou AIR), já não funcionaria. Outra alternativa, mais complexa, porém muito mais confiável, é a utilização de sockets (já que o socket cai automaticamente quando o navegador é fechado ou a rede cai e isso é facilmente detectável pelo servidor tem tempo real), porém, colocar um aplicativo com socket em um ISP é virtualmente impossível se não comprar um servidor dedicado ou semi-dedicado. Minha opinião: não faça isso =) Não vejo um cenário onde uma autenticação única possa auxiliar em alguma coisa, exceto no caso de licenciamento. 2010/1/14 Luiz Barros <sailorwebm...@yahoo.com.br> > Amigos, > > Estou precisando montar um sistema de login para usuários. > Isso eu já localizei na internet, até algums tutoriais. > > O problema é que preciso de que o sistema não deixe o mesmo Ou seja > no momento em que o usuário x está logado, não permitir o acesso dele > novamente enquanto ~cele não deslogar. > > Isso é muito importante para mim. > > Alguem poderia me ajudar ? > > Abraços > > -- > Você recebeu esta mensagem porque está inscrito na lista "flexdev" > Para enviar uma mensagem, envie um e-mail para flexdev@googlegroups.com > Para sair da lista, envie um email em branco para > flexdev-unsubscr...@googlegroups.com > Mais opções estão disponíveis em http://groups.google.com/group/flexdev > -- [] Júlio César Ködel G.
-- Você recebeu esta mensagem porque está inscrito na lista "flexdev" Para enviar uma mensagem, envie um e-mail para flexdev@googlegroups.com Para sair da lista, envie um email em branco para flexdev-unsubscr...@googlegroups.com Mais opções estão disponíveis em http://groups.google.com/group/flexdev