Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
Nathanofr

Sistema de login e senha com banco de dados?

Recommended Posts

Galera gostaria de saber como fazer um sistema de login conectado ao banco de dados. No banco de dados já tem pessoas cadastrados com nome de usuário e senha. O que eu queria é que ao clicar em ok o programa procurasse no banco de dados o nome de usuário e senha. Permitindo assim o acesso apenas para usuários do cadastrados no banco de dados.

Agradeço pela atenção.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Há vários modos diferentes de fazer isso, eu uso o modo de Session, eu faço uma busca no banco de dados com o login que o usuário informou, caso encontre eu checo se a senha é igual a que ele informou (a checagem de senha é feita no código e não na busca no banco de dados para evitar inject), caso esteja correto eu guardo os dados deste usuário em uma Session["LOGADO"] por exemplo, ai em todas as páginas que precisam de autenticação eu checo se essa Session não for null quer dizer que o usuário está logado.

ATT,

LBarcelosM

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites
  • Autor do tópico
  • Acho que não fui muito especifico desculpem.

    Tenho um formulário de autenticação, é como um qualquer, ao clicar em "OK" ele faz a pesquisa no banco de dados. Basicamente eu já fiz isso:


    Imports System.Data.OleDb

    Public Class Form1

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    Dim conexao As New OleDbConnection
    Dim comando As New OleDbCommand
    Dim reader As OleDbDataReader

    conexao.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0; DATA SOURCE=C:\Users\Casa\Desktop\Banco.accdb;"
    conexao.Open()

    comando.CommandText = "SELECT * from Usuarios where Usuario='" + TextBox1.Text + "'And Senha='" + TextBox2.Text + "'"

    comando.Connection = conexao
    reader = comando.ExecuteReader()

    If (reader.HasRows) Then
    MsgBox("conectado")
    Else
    MsgBox("não conectado")

    End If
    conexao.Close()
    Exit Sub

    End Sub
    End Class

    E o erro é esse:

    OleDbException não foi manipulada

    Erro não especificado: DB_E_PARAMNOTOPTIONAL(0x80040E10)

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    Você precisa primeiramente criar a conexão ODBC no sistema, acessando o Painel de Controle => Ferramentas Administrativas => Fontes de Dados (ODBC)

    Cria a conexão, como nome do banco, porta, usuário senha e testa a conexão. Se tudo OK então você começa a configurar no sistema.

    Segue abaixo um exemplo de código:


    Dim conn As Odbc.OdbcConnection = New Odbc.OdbcConnection("DSN=MEU_ODBC_NOME;UID=MEU_USUARIO;PWD=MINHA_SENHA;DB=NOME_BANCO;port=NUMERO_DA_PORTA")
    conn .Open()

    SQL = "SELECT * FROM tbl_usuarios WHERE email = '" & txtEmail.text & "' AND senha = '" & txtSenha.text & "';"

    da = New Odbc.OdbcDataAdapter(SQL, conn )

    conn .Close()

    ds = New DataSet()

    da.Fill(ds, "Usuarios")

    Return ds

    Tela de configuração ODBC: (No Windows 64 bits para acessar ODBC 32bits, acessar o programa c:\windows\syswow64\odbcad32.exe)

    Veja as imagens Anexadas.

    OBSERVAÇÃO IMPORTANTE:

    1. Principalmente num sistema de login, mas também em outros lugares, é importante evitar injeção SQL para que uma pessoa não autorizada tenha acesso ao sistema, a forma como esse SQL foi escrito não está protegido.

    Para proteção contra injeção SQL deve-se usar parametrização, exemplo:


    Dim SQL As String = "SELECT u.id,u.nome as 'nome',u.email as 'email',u.tipo as 'tipo',e.grupo AS 'grupo' FROM tbl_usuarios u, tbl_empresas e WHERE (e.id = u.empresa) AND (u.email = ?Email AND u.senha = AES_ENCRYPT(?senha,'EXEMPLO_CHAVE_CRIPTOGRAFIA') AND u.ativo = 's');"
    Dim dr As MySqlDataReader
    cmd = New MySqlCommand(SQL, conn)
    cmd.Parameters.Add(New MySqlParameter("?Email", Email))
    cmd.Parameters.Add(New MySqlParameter("?Senha", Senha))
    conn.Open()
    dr = cmd.ExecuteReader()
    If Not dr.HasRows Then
    Return 0
    End If
    While dr.Read
    Session("UserID") = dr("id")
    Session("UserName") = dr("nome")
    Session("GrupoEmpresas") = dr("grupo")
    Session("UserEmail") = dr("email")
    Session("UserTipo") = dr("tipo")
    End While
    conn.Close()
    Return 1

    Procure na WEB por proteção contra injeção SQL.

    Como Login: ' or 1 = 1 --

    Essa aspas no começo destroi o SQL.

    post-673726-1388496234483_thumb.png

    post-673726-13884962345341_thumb.png

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    Crie uma conta ou entre para comentar

    Você precisar ser um membro para fazer um comentário






    Sobre o Clube do Hardware

    No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

    Direitos autorais

    Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

    ×