Usuário consultar seus próprios dados
Ai pessoa,
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
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
Curtidas 0
Respostas
Soeuseijothaz
18/12/2014
Use quando o usuário logar crie Sessions existem vários exemplos de uso na net.
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.
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.
GOSTEI 0
Randrade
18/12/2014
Olá Jothaz,
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.
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.
GOSTEI 0
Soeuseijothaz
18/12/2014
Existem mil formas de se implementar e fica difícil sugerir algo sem conhecer a estrutura da sua aplicação.
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:
Onde você quiser fazer a consulta você recupera o login ou id e usa para consultar os dados:
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.
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.
GOSTEI 0
Randrade
18/12/2014
Isso já me deu uma ideia de como começar.
Muito obrigado pela ajuda.
Apenas para complementar, você teria algum material que implementa um login parecido? ou sabe se no devmedia possui algum?
Muito obrigado pela ajuda.
Apenas para complementar, você teria algum material que implementa um login parecido? ou sabe se no devmedia possui algum?
GOSTEI 0
Soeuseijothaz
18/12/2014
Isso já me deu uma ideia de como começar.
Muito obrigado pela ajuda.
Apenas para complementar, você teria algum material que implementa um login parecido? ou sabe se no devmedia possui algum?
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?
GOSTEI 0
Randrade
18/12/2014
Estou usando FormsAuthentication sim.
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.
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.
GOSTEI 0
Soeuseijothaz
18/12/2014
Estou usando FormsAuthentication sim.
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.
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.
GOSTEI 0
Randrade
18/12/2014
Estou usando FormsAuthentication sim.
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.
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.
GOSTEI 0