Usuário consultar seus próprios dados
18/12/2014
0
Estou desenvolvendo um módulo WEB para uma aplicação desktop. O banco de dados está criado e tudo funcionando corretamente.
O problema é que agora, o usuário irá realizar a autenticação via AD( Active Directory). Até ai tudo bem.
A aplicação possui um controle de funcionários( que não possuem acesso ao sistema) e neste controle possui apenas informações dos funcionários(nome, telefone, endereço, etc) e necessito liberar acesso para os mesmos visualizarem seus dados.
Agora vem o problema: Como fazer para que o usuário logue no sistema e só tenha acesso as suas informações?
Estou meio perdido na lógica para fazer isso, pois até então havia trabalhado apenas com permissões de usuários.
Alguém poderia me ajudar?
P.S: Estou desenvolvendo em Asp.NET MVC 5
Randrade
Posts
18/12/2014
Soeuseijothaz
Elas ficam armazenadas na memória do servidor e podem ser usadas em toda a aplicação.
Pode-se inclusive carregá-las com uma classe.
Elas expiram em um determinado tempo de inatividade por parte do usuário e de acordo com o timeout configurado.
Aliás é prudente que depois de um tempo inativo a seção caia e vá a pagina de login.
18/12/2014
Randrade
Esta parte eu já estudei e já implementei em outros sistemas. O problema mesmo é a lógica básica( sei até que meio besta perguntar, por tão simples que é). Necessito dessa separação de informações por login( este dado percence a tal usuário, então só ele poderá ver)
Um exemplo mais simples, fora do meu cenário, mas que porém me atende perfeitamente.
Ex: Um cadastro de uma escola, onde alunos conseguem ver suas notas e seus dados, porém não conseguem visualizar as dos demais.
Preciso dessa funcionalidade, de ligar um login aqueles dados.
Possuo a tabela alunos, onde contém as informações de alunos(nome, login, senha, email, etc).
Preciso desta simples lógica, deste controle.
procurei aqui no devmedia, porém os exemplos que achei, são muitos vagos, e não sanou minha dúvida.
18/12/2014
Soeuseijothaz
Então vou descrever um processo básico e veremos se lhe ajuda.
Na página de Login.aspx você cria a Session, pode ser algo como o exemplo a seguir:
if (!string.IsNullOrEmpty(txtUsr.Text) && (!string.IsNullOrEmpty(txtSenha.Text))) { Usuario objFiltroUsuario = new Usuario(); objFiltroUsuario.Login = txtUsr.Text; objFiltroUsuario.Senha = txtSenha.Text; Usuario objUsuario = Usuario.ListarUsuario(objFiltroUsuario); if (objUsuario != null) { UsuarioLogado = objUsuario; FormsAuthentication.RedirectFromLoginPage(txtUsr.Text, false); //Cria a Session Session["Usuario"] = objUsuario; } else { //Limpa a Session Session["Usuario"] = null; FormsAuthentication.RedirectFromLoginPage(txtUsr.Text, false); lblErrorMessage.Text = "Login ou senha inválidos."; } }
Onde você quiser fazer a consulta você recupera o login ou id e usa para consultar os dados:
Usuario objLogin = (Usuario)Session["oi"]; string login = objLogin.Login; //Ai é só usar o valor recuperado para pesquisar os dados. Enquanto o browser manter-se aberto e em atividade a Session estará ativa e ligada a quem logou.
A Session vale por browser aberto, então e abrir um aba ele considerará que o usuário ainda esta logado.
Existe um forma de deixar a Session visisil em todas as páginas sem a necessidade de ficar reuperando a todo momento, mas
é preciso fazer uma mudança na estrutura de todas a página. Se quiser lhe passo como pode ser feito.
18/12/2014
Randrade
Muito obrigado pela ajuda.
Apenas para complementar, você teria algum material que implementa um login parecido? ou sabe se no devmedia possui algum?
18/12/2014
Soeuseijothaz
Muito obrigado pela ajuda.
Apenas para complementar, você teria algum material que implementa um login parecido? ou sabe se no devmedia possui algum?
Só completando você pode preencher a Session com qualquer valor, passei o exemplo de classe apenas para mostrar como fazer.
Mas pose ser assim:
Session["Login"] = txtUsr.Text;
Ou assim:
Session["Logado"] = "ok";
Não tenho material nenhum, tenho alguns projetos em que uso.
Você esta usando o FormsAuthentication?
Já tem o controle de permissões implementado?
19/12/2014
Randrade
Neste projeto ainda não implementei o controle de permissões, até porque o gerente não me repassou os requisitos completos ainda.
Se possuir algum projeto que possa compartilhar, que não irá lhe trazer problemas, eu agradeceria.
E obrigado pela ajuda, está sendo bem útil.
19/12/2014
Soeuseijothaz
Neste projeto ainda não implementei o controle de permissões, até porque o gerente não me repassou os requisitos completos ainda.
Se possuir algum projeto que possa compartilhar, que não irá lhe trazer problemas, eu agradeceria.
E obrigado pela ajuda, está sendo bem útil.
Qual o seu email?
Talvez eu ache algum projeto dos que tenho que possa lhe enviar.
19/12/2014
Randrade
Neste projeto ainda não implementei o controle de permissões, até porque o gerente não me repassou os requisitos completos ainda.
Se possuir algum projeto que possa compartilhar, que não irá lhe trazer problemas, eu agradeceria.
E obrigado pela ajuda, está sendo bem útil.
Qual o seu email?
Talvez eu ache algum projeto dos que tenho que possa lhe enviar.
renilsonandrade@hotmail.com
E obrigado, você está me ajudando muito.
Clique aqui para fazer login e interagir na Comunidade :)