none
Validar acesso de usuarios ao logar no sistema. RRS feed

  • Pergunta

  • Boa noite a todos!
    Estou fazendo uma tela de login, e na tela de cadastro de usuários do sistema tenho alguns checkboxes que inserem no banco de dados valores 0 pra false e 1 pra true.
    Após efetuar o login, gostaria de saber como verificar esses valores na tabela do banco de dados para negar acesso a certas telas no sistema.
    O nome da Tabela é acesso_log
    Segue codigo de Select no Login.
        Private Sub PLogarSistema()
            Dim dr As MySqlDataReader = Nothing
            Using con As MySqlConnection = GetConnectionMySQL()
                Try
                    con.Open()
                    Dim sql As String = "SELECT * FROM login WHERE usuario_log =? and senha_log=?"
                    Dim cmd As MySqlCommand = New MySqlCommand(sql, con)
                    cmd.Parameters.Add(New MySqlParameter("@usuario_log", txtLog.Text))
                    cmd.Parameters.Add(New MySqlParameter("@senha_log", txtSen.Text))
                    dr = cmd.ExecuteReader
                    If dr.HasRows Then
                        dr.Read()
                        strLogin = dr.Item("usuario_log")
                        Me.Hide()
                        frmPrincipal.Show()
                    End If
                Catch ex As Exception
                    MsgBox(ex.Message)
                Finally
                    con.Close()
                End Try
            End Using
    Obrigado desde já!

    sábado, 3 de fevereiro de 2018 00:10

Respostas

  • Ainda não entendi.

    Seria isto?

    Dim Str_Check_Box_States As String = dr.Item("acesso_log").ToString
    
      chCadastroFuncionario.Checked = CBool(Str_Check_Box_States.Substring(0, 1))      
      chConsultaLogin.Checked = CBool(Str_Check_Box_States.Substring(1, 1))
      chCadastroAcesso.Checked = CBool(Str_Check_Box_States.ToString.Substring(2, 1))
      
      If chCadastroFuncionario.Checked = True Then
      Msgbox ("Acesso ao cadastro de funcionários liberado")
      Else
      Msgbox ("Acesso ao cadastro de funcionários negado")
      End If
      
      If chConsultaLogin.Checked = True Then
      Msgbox ("Acesso a consultas de login liberado")
      Else
      Msgbox ("Acesso a consultas de login negado")
      End If
      
      If chCadastroAcesso.Checked = True Then
      Msgbox ("Acesso ao cadastro de acesso liberado")
      Else
      Msgbox ("Acesso ao cadastro de acesso negado")
      End If


    MARIANO1776

    • Marcado como Resposta Thiago Marcondes segunda-feira, 5 de fevereiro de 2018 21:46
    domingo, 4 de fevereiro de 2018 00:24

Todas as Respostas

  • Bom dia.

    Como você está cadastrando os dados?


    MARIANO1776

    sábado, 3 de fevereiro de 2018 10:03
  • Bom dia.

    No form de cadastro de funcionário. Estou usando o seguinte código:

    Private Sub PSalvaLogin()
            Using con As MySqlConnection = GetConnectionMySQL()
                Try
                    con.Open()
                    Dim sql As String = "INSERT INTO login (usuario_log, senha_log, acesso_log) VALUES (?,?,?)"
                    Dim cmd As MySqlCommand = New MySqlCommand(sql, con)
                    cmd.Parameters.Add(New MySqlParameter("@usuario_log", txtUsuario.Text))
                    cmd.Parameters.Add(New MySqlParameter("@senha_log", txtSenha.Text))
                    cmd.Parameters.Add(New MySqlParameter("@acesso_log", CInt(chCadastroFuncionario.CheckState).ToString & CInt(chConsultaLogin.CheckState).ToString & CInt(chCadastroAcesso.CheckState).ToString))
                    cmd.ExecuteNonQuery()
                Catch ex As Exception
                    MsgBox("ex.Message")
                    Exit Sub
                Finally
                    con.Close()
                End Try
            End Using
        End Sub

    Gostaria de saber como faço para validar essa linha ao logar no sistema

    ("@acesso_log", CInt(chCadastroFuncionario.CheckState).ToString & CInt(chConsultaLogin.CheckState).ToString & CInt(chCadastroAcesso.CheckState).ToString))
    

    Obrigado.

    sábado, 3 de fevereiro de 2018 14:18
  • Boa tarde.

    Não compreendi sua dúvida.

    Na thread anterior paramos aqui:

    Dim Str_Check_Box_States As String = dr.Item("acesso_log").ToString

    chCadastroFuncionario.Checked = CBool(Str_Check_Box_States.Substring(0, 1))

    chConsultaLogin.Checked = CBool(Str_Check_Box_States.Substring(1, 1)) chCadastroAcesso.Checked = CBool(Str_Check_Box_States.ToString.Substring(2, 1))


    MARIANO1776

    sábado, 3 de fevereiro de 2018 18:58
  • Boa noite! Eu só preciso validar as informações salvas na tabela do banco de dados quando logar no sistema. Não sei se consegue me entender? Porque aquelas instruções da thread anterior eram pra gravar e fazer select no banco de dados. Eu preciso validar os 0s e 1s ao entrar no sistema. Conseguiu entender?
    domingo, 4 de fevereiro de 2018 00:16
  • Ainda não entendi.

    Seria isto?

    Dim Str_Check_Box_States As String = dr.Item("acesso_log").ToString
    
      chCadastroFuncionario.Checked = CBool(Str_Check_Box_States.Substring(0, 1))      
      chConsultaLogin.Checked = CBool(Str_Check_Box_States.Substring(1, 1))
      chCadastroAcesso.Checked = CBool(Str_Check_Box_States.ToString.Substring(2, 1))
      
      If chCadastroFuncionario.Checked = True Then
      Msgbox ("Acesso ao cadastro de funcionários liberado")
      Else
      Msgbox ("Acesso ao cadastro de funcionários negado")
      End If
      
      If chConsultaLogin.Checked = True Then
      Msgbox ("Acesso a consultas de login liberado")
      Else
      Msgbox ("Acesso a consultas de login negado")
      End If
      
      If chCadastroAcesso.Checked = True Then
      Msgbox ("Acesso ao cadastro de acesso liberado")
      Else
      Msgbox ("Acesso ao cadastro de acesso negado")
      End If


    MARIANO1776

    • Marcado como Resposta Thiago Marcondes segunda-feira, 5 de fevereiro de 2018 21:46
    domingo, 4 de fevereiro de 2018 00:24
  • Isso, exatamente. Só que no momento que você loga no sistema, e sem as MsgBox de acesso liberado.
    domingo, 4 de fevereiro de 2018 01:15
  • Assim?
    
    
    
    Public Bool_CadastroFuncionario, Bool_ConsultaLogin, Bool_CadastroAcesso As Boolean 'criar estas variáveis públicas no início do formulário
    
    Dim Str_Check_Box_States As String = dr.Item("acesso_log").ToString ' no seu select
    
            Bool_CadastroFuncionario = CBool(Str_Check_Box_States.Substring(0, 1))
            Bool_ConsultaLogin = CBool(Str_Check_Box_States.Substring(1, 1))
            Bool_CadastroAcesso = CBool(Str_Check_Box_States.ToString.Substring(2, 1))
    
            chCadastroFuncionario.Checked = Bool_CadastroFuncionario
            chConsultaLogin.Checked = Bool_ConsultaLogin
            chCadastroAcesso.Checked = Bool_CadastroAcesso
    		
    
        Private Sub Bu_Cadastro_Funcionario_Click(sender As System.Object, e As System.EventArgs) Handles Bu_Cadastro_Funcionario.Click
    
            
    
            If Bool_CadastroFuncionario = True Then
                Frm_CadastroFuncionario.ShowDialog()
            Else
                MsgBox("Acesso ao cadastro de funcionários negado")
            End If
    		
    	End Sub	
    
    	Private Sub Bu_ConsultaLogin_Click(sender As System.Object, e As System.EventArgs) Handles Bu_ConsultaLogin.Click
    		
            If Bool_ConsultaLogin = True Then
                Frm_ConsultaLogin.ShowDialog()
            Else
                MsgBox("Acesso a consultas de login negado")
            End If
    		
    	End Sub	
    		
    	Private Sub Bu_CadastroAcesso_Click(sender As System.Object, e As System.EventArgs) Handles Bu_CadastroAcesso.Click
    
            If Bool_CadastroAcesso = True Then
                Frm_CadastroAcesso.ShowDialog()
            Else
                MsgBox("Acesso ao cadastro de acesso negado")
            End If
      
    	End Sub	


    MARIANO1776

    domingo, 4 de fevereiro de 2018 10:27
  • Boa noite! Eu tenho a tela de login, certo? Após o login, ele vai pra tela principal do sistema, que é onde contem os botões de cadastros e etc. Eu preciso aplicar essa validação nessa tela principal. Para quando a pessoa clicar no cadastro de funcionários, por exemplo. O sistema verifique os 1s e 0s para liberar ou negar acesso.

    Desculpe o incomodo, mas estou me batendo nisso. Na verdade, só tá faltando isso pra finalizar o projeto.

    domingo, 4 de fevereiro de 2018 22:01
  • Entendi, porisso sugeri a criação das variáveis públicas

    Public Bool_CadastroFuncionario, Bool_ConsultaLogin, Bool_CadastroAcesso As Boolean 'criar estas variáveis públicas no início do formulário

    Após o login, os seus zeros e uns estarão armazenados nestas variáveis como false e true.

    Como são públicas, estarão visíveis por todos os formulários.

    Você pode declará-las em um módulo ou no formulário de login.

    Não é nenhum incômodo.

    Estamos aqui para isto, vamos resolver.


    MARIANO1776

    domingo, 4 de fevereiro de 2018 22:09
  • Show de bola! Funcionou certinho.

    Uma ultima dúvida só. 

    Se eu precisar adicionar mais checkboxes nessa propriedade seria: 

    Substring(2, 1))

    Substring(3, 1))

    Substring(4, 1))

    Seria isso? Mais uma vez, muito obrigado pela ajuda, MARIANO1776!

    segunda-feira, 5 de fevereiro de 2018 20:57
  • Sim, basta fazer o INSERT e o SELECT na mesma sequencia.

    MARIANO1776

    segunda-feira, 5 de fevereiro de 2018 23:44
  • Obrigado! Salvou meu dia de novo! 
    segunda-feira, 5 de fevereiro de 2018 23:58