diogom Posted June 27, 2012 at 09:08 AM Report Share #465841 Posted June 27, 2012 at 09:08 AM (edited) Olá, Tenho uma página para fazer o login, onde crio uma session. Session["nome"] = userTB.Text; Response.Redirect("xxx.aspx"); Recebo essa session numa outra página. userTB.Text = Session["nome"].ToString().Trim(); if (String.IsNullOrEmpty(Session["nome"].ToString().Trim())) { Response.Write("<script language=\"javascript\">alert('Utilizador não identificado ou sessão expirada. Por favor, identifique-se no sistema');self.location.href='http://xxxx.com.pt/xxxx.aspx';</script>"); return; } else { //if (Session["nome"].ToString() != null && Session["nome"].ToString() != "") //{ if (!IsPostBack) { if (userTB.Text.Contains("@")) { // Declare the query string. String queryString = O problema é, que as sessions tem um tempo de experição e quando esse tempo acaba e faço refresh, surge este erro Object reference not set to an instance of an object. . O que quero é, fazer uma condição para quando a session ficar a null, retornar para a página de login. Cmp Edited June 27, 2012 at 09:43 AM by Caça GeShi Link to comment Share on other sites More sharing options...
petvetbr Posted June 27, 2012 at 11:22 AM Report Share #465903 Posted June 27, 2012 at 11:22 AM (edited) Primeiro verifique se a Session["nome"]== null Se for faça. Um response.redirect para a página de logon. Edited June 27, 2012 at 11:23 AM by petvetbr Fernando Lage Bastos - MCP/MCTS/MCPD Link to comment Share on other sites More sharing options...
diogom Posted June 27, 2012 at 11:30 AM Author Report Share #465908 Posted June 27, 2012 at 11:30 AM Primeiro verifique se a Session["nome"]== null Se for faça. Um response.redirect para a página de logon. Isso já está feito. Eu tenho isto a funcar bem, o problema é que ao final de um tempo, a sesson expira e quando faço refresh ou outra coisa qualquer, dá-me este erro: Object reference not set to an instance of an object. Link to comment Share on other sites More sharing options...
poliveira1978 Posted June 27, 2012 at 01:58 PM Report Share #465934 Posted June 27, 2012 at 01:58 PM uma coisa deste género: if (HttpContext.Current.Session!= null) { HttpContext.Current.Session["nome"]="qualquer coisa"; } else { // redirect para a página de login } Link to comment Share on other sites More sharing options...
diogom Posted June 27, 2012 at 03:59 PM Author Report Share #465990 Posted June 27, 2012 at 03:59 PM uma coisa deste género: if (HttpContext.Current.Session!= null) { HttpContext.Current.Session["nome"]="qualquer coisa"; } else { // redirect para a página de login } Mais ou menos. Já está resolvido. Link to comment Share on other sites More sharing options...
dvdribeiro Posted September 1, 2012 at 01:29 PM Report Share #474253 Posted September 1, 2012 at 01:29 PM diogom este tipo de técnicas têm uma designação que é defensive code ou defensive programming, que neste caso em concreto consiste em começar por verificar se as instâncias estão criadas e/ou contêm a informação que necessitamos para continuar: http://geekswithblogs.net/sdorman/archive/2008/07/04/what-is-ldquodefensive-programmingrdquo.aspx Uma boa ferramenta que pode ajudar a complementar o defensive code é o code analysis do Visual Studio. Muitas vezes ignoramo-lo mas dá excelentes dicas. Contudo de uma forma geral, pelo menos ter noção se estamos a consultar algo que possa gerar uma excepção (como era o caso deste código), ou estamos a executar código específico da framework .net (ex.: Xmldocument.Load pode gerar uma XmlException - devemos ter o cuidado de prever essas hipóteses tratando o erro em função do que é pretendido pelo sistema), e "bater" o código com esse cuidado faz muita diferença na hora de apanhar esta situações! Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now