Usando a session por uma classe auxiliar.
Bom dia galera, vou explicar o meu caso detalhado.
Eu tenho uma pagina Login.ASPX, se o usuário logar e for autenticado, ele seta a Session["Autenticado"] = "1" e redireciona para a pagina Painel.aspx
O painel.aspx , em seu code behind possui a classe painel que antes herdava o System.Web.UI.Page.
o que eu fiz?
criei uma classe chamada Permissao, que está herdando System.Web.UI.Page.
Assim, agora ao inves de herdar o System.Web.UI.Page direto, eu herdo a classe Permissao no Painel.
Na classe permissão eu criei uma propriedade e um construtor:
public bool UsuarioAutenticado
{
get
{
if ((String)Session["UsuarioAutenticado"] == "1")
return true;
else
return false;
}
}
public Permissao()
{
if (this.UsuarioAutenticado == false)
{
Server.Transfer("Login.aspx");
}
}
......................
Ou seja, (pela minha lógica), quando a pagina Login redirecionasse para a pagina Painel, cairia no construtor da Permissão e validaria o usuário.
Porém, está dando um erro bizarro:
"+ UsuarioAutenticado 'UsuarioAutenticado' threw an exception of type 'System.Web.HttpException' bool {System.Web.HttpException}",
que dispara:
Session state can only be used when enableSessionState is set to true, either in a configuration file or in the Page directive. Please also make sure that System.Web.SessionStateModule or a custom session state module is included in the <configuration>\<system.web>\<httpModules> section in the application configuration.
...
só que eu ja setei o EnableSessionState="True" no painel! e até <pages enableSessionState="true"></pages> no web config!
Alguém tem uma luz?
Eu tenho uma pagina Login.ASPX, se o usuário logar e for autenticado, ele seta a Session["Autenticado"] = "1" e redireciona para a pagina Painel.aspx
O painel.aspx , em seu code behind possui a classe painel que antes herdava o System.Web.UI.Page.
o que eu fiz?
criei uma classe chamada Permissao, que está herdando System.Web.UI.Page.
Assim, agora ao inves de herdar o System.Web.UI.Page direto, eu herdo a classe Permissao no Painel.
Na classe permissão eu criei uma propriedade e um construtor:
public bool UsuarioAutenticado
{
get
{
if ((String)Session["UsuarioAutenticado"] == "1")
return true;
else
return false;
}
}
public Permissao()
{
if (this.UsuarioAutenticado == false)
{
Server.Transfer("Login.aspx");
}
}
......................
Ou seja, (pela minha lógica), quando a pagina Login redirecionasse para a pagina Painel, cairia no construtor da Permissão e validaria o usuário.
Porém, está dando um erro bizarro:
"+ UsuarioAutenticado 'UsuarioAutenticado' threw an exception of type 'System.Web.HttpException' bool {System.Web.HttpException}",
que dispara:
Session state can only be used when enableSessionState is set to true, either in a configuration file or in the Page directive. Please also make sure that System.Web.SessionStateModule or a custom session state module is included in the <configuration>\<system.web>\<httpModules> section in the application configuration.
...
só que eu ja setei o EnableSessionState="True" no painel! e até <pages enableSessionState="true"></pages> no web config!
Alguém tem uma luz?
Caio Uechi
Curtidas 0
Respostas
Caio Uechi
07/02/2013
uma moça falou:
"Esse código está numa classe herdada pela página certo?
Acontece que a Session só pode ser acessada no contexto da página. Talvez funcione se você usar:
HttpContext.Current.Session["propriedade"]"
..
ja tentei usar o httpcontext.current.session, porém ele fica como nulo =(
"Esse código está numa classe herdada pela página certo?
Acontece que a Session só pode ser acessada no contexto da página. Talvez funcione se você usar:
HttpContext.Current.Session["propriedade"]"
..
ja tentei usar o httpcontext.current.session, porém ele fica como nulo =(
GOSTEI 0
Robson Alves
07/02/2013
Tenta definir a session direto da página:
<%@ Page enableSessionState = "true" %>
<%@ Page enableSessionState = "true" %>
GOSTEI 0
Caio Uechi
07/02/2013
um camarada senior aqui da empresa resolveu.
a questão é a seguinte, eu estava tentando acessar o valor da propriedade no construtor.
dai o sistema acessava a propriedade e disparava a verificação na session.
SÓ QUE, A SESSION AINDA NÃO FOI CRIADA NESSE CICLO DA PAGINA.
OU SEJA,
criei:
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
if (!this.UsuarioAutenticado)
Server.Transfer("LogarNoSistema.aspx");
}
...
Robson, no topico anterior vc disse pra fazer o override no Onload, eu falei que tinha feito soh que tinha cagado todo page load...
descobri que faltava o base.OnLoad(e);
Valeu!!
a questão é a seguinte, eu estava tentando acessar o valor da propriedade no construtor.
dai o sistema acessava a propriedade e disparava a verificação na session.
SÓ QUE, A SESSION AINDA NÃO FOI CRIADA NESSE CICLO DA PAGINA.
OU SEJA,
criei:
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
if (!this.UsuarioAutenticado)
Server.Transfer("LogarNoSistema.aspx");
}
...
Robson, no topico anterior vc disse pra fazer o override no Onload, eu falei que tinha feito soh que tinha cagado todo page load...
descobri que faltava o base.OnLoad(e);
Valeu!!
GOSTEI 0
Robson Alves
07/02/2013
Muito bom!
Keep Coding
Keep Coding
GOSTEI 0
Caio Uechi
07/02/2013
valeu robson! e parabens por agora ser colaborador! Rs!! \O
Keep making questions on devmedia, rS!
Keep making questions on devmedia, rS!
GOSTEI 0
Robson Alves
07/02/2013
Caio! Vlw cara!!
Entendendo que o assunto está resolvido!
Tranco o Tópico!
Abraços!
Entendendo que o assunto está resolvido!
Tranco o Tópico!
Abraços!
GOSTEI 0
Caio Uechi
07/02/2013
teste
GOSTEI 0
Caio Uechi
07/02/2013
Robson, quando vc tranca o topico, eu não deveria deixar de ter a possibilidade de postar? Rs
fiz só um teste.
fiz só um teste.
GOSTEI 0
Caio Uechi
07/02/2013
Robson, quando vc tranca o topico, eu não deveria deixar de ter a possibilidade de postar? Rs
fiz só um teste.
fiz só um teste.
GOSTEI 0
Robson Alves
07/02/2013
Eu tmb achava que era viu, rsrs, vou reportar isso para a cupula!
Vlww!
Vlww!
GOSTEI 0