Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Marcelo Carvalho P

[Resolvido] Session, Menu e MasterPage

Recommended Posts

Bom Dia Pessoal

 

Seguinte sou novato na plataforma C#, estou desenvolvendo um sistema que tem login e senha e cria uma sessão para cada usuário logado. Primeiramente vou explicar como funciona o sistema, o usuario faz um login e é direcionado para uma pagina especifica, nesta pagina que foi criada com base em uma masterpage, na masterpage eu coloquei apenas uma imagem e um menu, então nessa página é exibida o menu que veio da masterpage e tb coloquei um label que mostra o nome do usuario logado, no menu tem as opções NOVO e STATUS, bem simples clicando no novo me leva para a pagina novo.aspx e status para a a pagina status.aspx, ambas coloquei tb o label para continuar mostrando o nome do usuario. Meu problema é o seguinte quando logo com um usuario na pagina principal e navegando pelo menu nas outras páginas aparece o nome do usuário logado, porém se estando logado com um usuario e ao mesmo tempo logo com outro usuario continua aparecendo no label da pagina principal o nome de cada usuario, o problema começa quando eu clico nos menus então o label muda para o nome do primeiro usuario logado. para colocar o nome nas label eu utilizo label1.texte = Convert.tostring(Session["Usuario"]);

 

O que pode estar acontecendo esta havendo uma mistura de sessões? lembrando que coloquei os label nas páginas e não na master, pois não consegui. Existe outra maneira de fazer?

 

 

Obrigado pela Atenção.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Marcelo seja bem vindo ao Fórum iMasters, de uma olhada em nossas regras: Regras do Fórum iMasters

 

Se você abrir abas no mesmo navegador a sessão será mantida, ele não mantém as sessões entre as abas. Esta mistura de sessão ocorre com várias instâncias de navegadores?

 

Abraços...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal, como sou iniciante talvez minha duvida não ficou clara. Após fazer um Debug passo a passo no meu sistema notei que após fazer o login ele guarda o nome do usuário na sessão ( Session["Usuario"]) e a cada clique que eu dou em um ítem do menu ele vai no load da masterpage e coloca o conteúdo dessa session em um label, Coloquei um label no load da master page para mostrar o nome do usuario, só que se entro com outro usuario em outra máquina, na primeira máquina onde tinha feito o login se clico em algum ítem do menu ele esta colocando o nome do último usuario que entrou no sistema, ou seja, ele não cria uma session para cada navegador. assim quando ele carrega o load da master vai exibir no label o último usuario que entrou? Não sei se fui mais claro, mas na verdade quero fazer um sistema onde existem usuarios com menus e são criados chamados com base no nome dos usuários, alguém sabe algum tutorial que ensina a fazer isto?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Marcelo, bom se você está rodando sua aplicação localmente e não existe um local aonde é destruida, sua session irá continuar ativa enquanto o browser estiver aberto.

Compartilhar este post


Link para o post
Compartilhar em outros sites

OPS. Seguinte eu abro o sistema na máquina, e para fazer um teste com um outro usuário no sistema eu abro o sistema em outra aba e não em outra máquina, pode ser por isso que a session esta mantendo sempre o último usuario. Vou testar abrindo o sistema em dois browser e não no mesmo browser em abas diferentes. Depois eu posto aqui o resultado.

 

Obrigado pela paciência e atenção

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá, tente isso mesmo, pois quando você abre em abas seu browser continua tendo apenas 1 instância, quando uma outra janela é aberta, outra instância do browser é criada.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sei que você já resolveu, mas eu fiz uma outra coisa.

 

Eu tenho um meno em minha master page e para evitar esse problema, eu insiro o comando Sessio.Clear() no evento de Click do menu.

 

E tb ao invés de usar os links do menu da master, eu coloco dentro do evento de Click os links para cada pagina, de acordo com o item selecionado.

 

Seria algo assim:

 

protected void Master_MenuItemClick(object sender, MenuEventArgs e)
		{
			Session.Clear();

			switch (e.Item.Value)
			{
				case "Valor do Item do Menu":
					Response.Redirect("PaginaDesejada.aspx");
					break;
			 }
}

Ai eu posso navegar usando master, sem abrir outras janelas, como um iFrame, e as variaveis de sessão são apagadas sempre que clico em um item de menu, mudando o valor como eu quero.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.