none
Implementando um login de sistema RRS feed

  • Pergunta

  • Olá! Boa noite a todos.

    Sou estudante de TI e dei inicio ao módulo de Desenvolvimento de Sistemas, eu e mais outra pessoa ficamos encarregados no desenvolvimento Login de nosso projeto final montamos um aplicativo q acessa a página principal de um sistema utilizando o Visual C# Express 2010 e o SQL Server 2008 Express. Suas funcionalidades básicas aparentemente rodam perfeitamente bem.  Porém, estamos tendo dificuldade na implementação de uma regra de segurança em q o usuário na terceira tentativa de logar com senha errada, seja bloqueado.

    Agredeceria muito se alguém podesse nos dar uma forcinha na resolução desta questão. Para tanto, segue o código já feito de nosso aplicativo.

        public partial class frmLogin : Form

        {

            public frmLogin()

            {

                InitializeComponent();

            }

            static string conexao = @"Data Source=.\SQLEXPRESS;"        

                                    + "Initial Catalog = ARMAZEM;"  

                                    + "User Id = LoginSQL;"          

                                    + "pwd = 123"                        

            SqlConnection Cn = new SqlConnection(conexao);

            private SqlConnection AbrirBanco()

            {

                SqlConnection cn = new SqlConnection();

                cn.Open();

                return cn;

            }

            private void btnSair_Click(object sender, EventArgs e)

            {

                Application.Exit();

            }

            private void btnEntrar_Click(object sender, EventArgs e)

            {

                string comando = "SELECT NomeUsu, SenhaUsu FROM TBUSUARIOS WHERE NomeUsu ='" + txtUser.Text + "'and SenhaUsu ='" + txtSenha.Text + "' ";

                SqlCommand cmd = new SqlCommand(comando, Cn);

                SqlDataReader dr;

                try

                {

                    if (Cn.State.ToString() == "Closed") Cn.Open();

                    dr = cmd.ExecuteReader();

                    if (dr.Read())

                    {

                        txtUser.Text  = dr["NomeUsu" ].ToString();

                        txtSenha.Text = dr["SenhaUsu"].ToString();

                        MessageBox.Show("Seja! Bem vindo");

                        this.Hide();

                        frmIndex Indice = new frmIndex();

                        Indice.ShowDialog();

                    }

                    else

                    {

                        MessageBox.Show("Usuário e senha Inválidos");

                        txtUser.Clear();

                        txtSenha.Clear();

                    }

                    dr.Close();

                    Cn.Close();

                }

                catch (SqlException ex)

                {

                    MessageBox.Show(ex.Message);

                }

                finally

                {

                    if (Cn.State.ToString() == "Open") Cn.Close();

                }

            }

    sábado, 2 de fevereiro de 2013 00:46

Todas as Respostas

  • Amigo, acredito que você está no forum errado. O forum que você procura é o de C#.

    Mas enfim, sei programar em C#, e o que está faltando no seu código é provavelmente uma variável estática que guarda a quantidade de tentativas de login.

    Como você não está utilizando uma classe específica para a efetuação do Login, o jeito é declarar uma variável que conte quantas vezes o login fora feito de forma errada, comparando com um número N que você definir como o máximo de tentativas.

    Ou seja, toda vez que ele apertar o botão de conexão, ele faz esta comparação. Estourando o limite de vezes, você toma a ação desejada.

    Abraço.


    Gustavo Bagno E. da Silva

    quarta-feira, 6 de fevereiro de 2013 03:11