Conheça o ECTurbo: https://edivamcabral.com.br/bundle_details/10
Você já pensou em desenvolver um sistema de login completo em C#? Muitos preferem chamar de C Sharp.
Este sistema incluiria controle de tentativas, exibição personalizada de mensagens e até a foto do usuário. 🚀 Com este artigo, vou te mostrar como isso é possível, abordando os principais conceitos e funcionalidades usados em um projeto prático. 🖥️
Assista todas as aulas
Introdução 📝
Na aula que inspirou este artigo, foi implementado um sistema de login funcional em C Sharp (C#) com as seguintes características:
- Verificação do login e senha no banco de dados.
- Controle de tentativas de acesso com mensagens personalizadas.
- Exibição do nome e foto do usuário logado no formulário principal.
- Encerramento automático do formulário de login e abertura do painel principal após a autenticação.
Agora, vou detalhar os principais elementos do código e como eles se conectam para criar esse sistema eficiente e seguro.
1. Estrutura do Código
O coração do sistema de login é o formulário chamado FrmLogin
. Aqui estão algumas funcionalidades importantes:
- Design minimalista:
FormBorderStyle
definido comoNone
para uma interface limpa. - Botão de Sair: Método
BtSair_Click
, que fecha o aplicativo ao clicar no botão de saída. - Validações: Métodos para verificar campos vazios (
TxtLogin
eTxtSenha
) com mensagens informativas ao usuário.
Exemplo de validação:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
private bool Validacoes() { if (TxtLogin.Text.Trim() == string.Empty) { Funcoes.CriarLabel(TxtLogin, "Obrigatório", descricao: "Digite o seu login para prosseguir"); return false; } if (TxtSenha.Text.Trim() == string.Empty) { Funcoes.CriarLabel(TxtSenha, "Obrigatório", descricao: "Digite a sua senha para prosseguir"); return false; } return true; } |
🔑 Dica: Sempre informe claramente o que está faltando para o usuário, melhorando a experiência de uso.
2. Autenticação no Banco de Dados
O código utiliza o banco Firebird, mas também é adaptável para outros bancos como MySQL, SQLite e Access. Após validar os campos, o método BtEntrar_Click
verifica as credenciais.
Destaques:
- Criptografia de senha:
1 |
string Senha = Funcoes.Criptografar(TxtSenha.Text); |
Isso garante maior segurança ao armazenar senhas no banco.
- Busca no banco:
1 2 3 4 |
FireBird.Sql = "SELECT * FROM USUARIOS"; FireBird.ParamTextoIgual("LOGIN", TxtLogin); FireBird.ParamExpressao("SENHA", Senha); Funcoes.DtLogin = FireBird.BuscaSQL(); |
- Validação do retorno:
1 2 3 4 |
if (Funcoes.DtLogin.Rows.Count > 0) { Dispose(); // Fecha o formulário de login. } |
3. Controle de Tentativas e Feedback ao Usuário
Um diferencial interessante do sistema é o controle de tentativas. Se o usuário errar o login consecutivamente, ele será bloqueado temporariamente.
Como funciona:
- Incremento das tentativas:
1 2 |
Settings.Default.Tentativa++; Settings.Default.Save(); |
- Feedback dinâmico:
1 2 3 4 |
int Resta = 5 - Settings.Default.Tentativa; LblMsgLogin.Text = Resta == 1 ? "Falta somente uma tentativa antes do bloqueio temporário." : $"Login ou senha inválidos, restam {Resta} tentativas"; |
- Bloqueio após 5 tentativas:
1 2 3 4 5 |
if (Resta <= 0) { Settings.Default.Tentativa = 0; Dispose(); // Fecha o formulário. } |
4. Personalização: Nome e Foto do Usuário 🎨
Após o login bem-sucedido, o formulário principal exibe o nome e a foto do usuário. Isso é feito armazenando os dados no DataTable
e passando-os para o formulário principal.
- Código para exibir a mensagem de boas-vindas:
1 2 |
string usuario = Funcoes.DtLogin.Rows[0]["NOME"].ToString(); LblMsgLogin.Text = $"Seja bem-vindo, {usuario}!"; |
- Código para exibir a foto:
1 |
Funcoes.PegarFotoDoBanco(FotoUsuario, Funcoes.DtLogin.Rows[0]["FOTO"].ToString()); |
5. Segurança e Usabilidade 🔐
Para evitar erros e melhorar a segurança:
- Certifique-se de que o
DataTable
não é nulo antes de acessá-lo. - Criptografe senhas antes de compará-las com o banco.
- Adicione mensagens claras para facilitar a interação do usuário com o sistema.
Conclusão 🎉
Criar um sistema de login em C Sharp (C#) pode parecer desafiador, mas com as práticas certas, é possível desenvolver algo funcional, seguro e amigável. Este projeto destacou como integrar validações, feedback ao usuário e até personalizações como fotos e mensagens de boas-vindas.
💡 Dica final: Teste sempre seu sistema em diferentes cenários para garantir robustez. Um sistema de login é a porta de entrada para sua aplicação, e a primeira impressão é crucial!
Gostou do artigo? Deixe seu comentário e compartilhe com amigos desenvolvedores! 🧔💻
0 Comentários