[RESOLVIDO] Qual a melhor maneira de controlar Usuário Logado c# ?
4 respostasResolvido
csharp
EduGomes
Olá mais uma vez.
Aqui estou eu novamente pedindo opiniões de você que tem mais experiência. Estou desenvolvendo a parte de níveis de acesso no meu sistema, e estou um pouco inseguro da maneira que devo fazer para controlar o usuário que está logado no sistema.
Pensei em criar um public Usuario na tela de login, e acessar ele nas demais telas, mas por causa da minha falta de experiência não sei se essa é a melhor maneira, ou se talvez exista alguma forma mais “correta” de se fazer. Ou até mesmo se existe alguma funcionalidade da linguagem que possa me ajudar.
Cogitei a ideia de criar uma tabela no BD, tipo uma UsuarioLogadoTable, e armazenar o usuário lá.
Tudo depende da complexidade que você quer ter e do que pretende fazer com os dados do usuário logado. Sendo um sistema desktop, acredito que a solução mais simples seja um struct ou uma classe pública (até mesmo estática) que armazena os dados do usuário logado. Sempre que a aplicação for iniciada, o usuário faria login novamente.
Ter alguma forma de persistência (local ou no banco, como você imaginou) faz mais sentido se você quer manter o usuário logado caso ele feche a aplicação. Mas vai requerer outros controles.
Abraço.
EduGomes
No caso o usuário faz parte de algum grupo de acesso. Esse grupo possui determinado nivel de acesso para cada uma das telas. Sendo assim preciso verificar o usuário que está logado, e de qual grupo ele faz parte, e então verificar qual permissão ele tem em cada tela.
Mas pensando mais adiante, acho que vou acabar armazenando ele no banco.
TerraSkilll
Sim, você vai precisar armazenar os dados no banco. É assim que vai comparar, por exemplo, os dados do usuário (login e senha) para ver se ele pode acessar o sistema ou não. Isso é inevitável.
Minha resposta partiu do princípio que você estava com dúvida em como armazenar os dados do usuário dentro da aplicação, quando ele já fez o login, por isso sugeri estruturas da própria linguagem C#, pois é lá que você pode armazenar os dados depois do login. Ou seja, você terá no banco de dados tabelas referentes a login e permissões, e na aplicação C# terá alguma estrutura para armazenar coisas como o nome do usuário logado (pode ser uma simples string numa classe estática, ou algo mais complexo, dependendo do caso).