prompt 0 Denunciar post Postado Setembro 10, 2009 Fala galera, beleza? Seguinte, no login do meu sistema, armazenei as informações do meu usuário (nome, ID, Grupo de Acesso) que vou usar em diversas páginas numa Array, dentro de uma Session. Isso resolveu meu problema mas estou tendo bugs depois de 20min(que é o tempo de "vida" de uma Session no servidor). Abaixo a forma que estou fazendo atualmente: // Cria Array: string[] arrUsuario = new string[3]; // Atribui os valores a Array: arrUsuario[0] = DRlogin["IDusuario"].ToString(); arrUsuario[1] = DRlogin["NomeCompleto"].ToString(); arrUsuario[2] = DRlogin["GrupoDeAcesso"].ToString(); // Guarda a Array dentro da Session: Session["UsuarioLogado"] = arrUsuario; O que posso usar no lugar da Session para não perder essas informações por tempo indefinido, até o usuário fechar o Browser, por exemplo? Obrigado galera! Prompt Compartilhar este post Link para o post Compartilhar em outros sites
Ivan.Teles 23 Denunciar post Postado Setembro 10, 2009 Aumenta o tempo da sessão definindo no web.config, pois creio que seja a melhor forma. <sessionState timeout="60"/> 60 é minutos de vida. Compartilhar este post Link para o post Compartilhar em outros sites
prompt 0 Denunciar post Postado Setembro 10, 2009 Pois é jivandif, fiz como me falou, de colocar a tag <sessionState timeout="60"/>, porém não tive sucesso. Fiz o teste e, após deixar o sistema parado por mais de uma hora, cliquei em um link do sistema e me retornou a seguinte tela de erro: Server Error in '/' Application. -------------------------------------------------------------------------------- Object reference not set to an instance of an object. Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. Exception Details: System.NullReferenceException: Object reference not set to an instance of an object. Source Error: An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below. Stack Trace: [NullReferenceException: Object reference not set to an instance of an object.] Usuario.Page_Load(Object sender, EventArgs e) +48 System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) +14 System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +35 System.Web.UI.Control.OnLoad(EventArgs e) +99 System.Web.UI.Control.LoadRecursive() +50 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +627 Esta é a mesma mensagem de erro que dava quando não tinha esta tag e fazia o teste para ver se ele redirecionava para a página de login.. O que posso estar fazendo de errado para ele não obedecer isso? Seque abaixo como está configurado no web.config: <sessionState timeout="60" /> <authentication mode="Forms"> <forms name="TRIUNFO" defaultUrl="Home.aspx" loginUrl="Login.aspx" timeout="60000" /> </authentication> E Cega86, estou usando a autenticação como pode ver acima, mas desconheço esse esquema de Ticket.. Como faço por exemplo para resgatar as informações que estão nele armazenadas? Pois, em todas as páginas faço verificações com o ID dele.. Obrigado pessoal e Abraços, Prompt Compartilhar este post Link para o post Compartilhar em outros sites
Cega86 0 Denunciar post Postado Setembro 10, 2009 Cara você ta usando FormsAuthentication? se tiver não precisa armezanar numa session , você pode criar um ticket contendo essas informações. FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(1,nome,DateTime.Now,DateTime.Now.AddMinutes(60),true,userData,FormsAuthentication.FormsCookiePath); Caso a session expire você direciona para página de login novamente. Compartilhar este post Link para o post Compartilhar em outros sites
Ivan.Teles 23 Denunciar post Postado Setembro 10, 2009 Hum... o erro ocorre pq a sessão expira e você esta tentando usar um objeto que não existe. Então pra resolver o problema é so verificar se o objeto não é nulo, antes de usar. Compartilhar este post Link para o post Compartilhar em outros sites
prompt 0 Denunciar post Postado Setembro 10, 2009 Hum... o erro ocorre pq a sessão expira e você esta tentando usar um objeto que não existe. Então pra resolver o problema é so verificar se o objeto não é nulo, antes de usar. Certo, entendi, mas só uma pergunta.. Esse redirecionamento para a tela de login, depois que a sessão expira, tem um jeito de ser feito automaticamente não tem? Já vi isso antes e pensei que fosse só configurando o web.config do jeito que fiz (mostrei no post anterior).. Teoricamente ele teria que resolver esse tipo de coisa sozinho certo? Até pq, se a sessão expira, ele nem vai executar o Page_Load das páginas clicadas, e sim, vai redirecionar para a Login.aspx correto? Veja bem, posso faz esta verificação sem problemas, só estou perguntando do redirecionamento no Timeout pq quero entender o que esta errado.. Obrigado pela ajuda jivandf. Abraço, Prompt Compartilhar este post Link para o post Compartilhar em outros sites
Ivan.Teles 23 Denunciar post Postado Setembro 10, 2009 Bom, a questão é: 1 - você esta usando o membership? Esse redirecionamento para a tela de login, depois que a sessão expira, tem um jeito de ser feito automaticamente não tem?Ele até redireciona se você estiver usando o membership, caso seu sistema login seja feito por você esse redirecionamento tem q ser feito manualmente. Compartilhar este post Link para o post Compartilhar em outros sites
prompt 0 Denunciar post Postado Setembro 10, 2009 Bom, a questão é: 1 - você esta usando o membership? Esse redirecionamento para a tela de login, depois que a sessão expira, tem um jeito de ser feito automaticamente não tem?Ele até redireciona se você estiver usando o membership, caso seu sistema login seja feito por você esse redirecionamento tem q ser feito manualmente. Entendi agora jivandf, realmente não usei membership.. fiz eu mesmo o sistema de login. Não sabia esse lance, mas dei uma pesquisada e entendi. Resumindo então, eu tenho que fazer o controle de redirecionamento todo, em todas as páginas do sistema levando em conta se a minha session estiver vazia ou não. Perfeito, vou fazer isso então! Só gostaria de entender que esquema é esse de Tickets que o Cega86 falou.. Nunca tinha escutado falar.. Muito obrigado pela ajuda pessoal! Abraços, Prompt Compartilhar este post Link para o post Compartilhar em outros sites
quintelab 91 Denunciar post Postado Setembro 11, 2009 Tópico Resolvido? Abraços... Compartilhar este post Link para o post Compartilhar em outros sites