Ir ao conteúdo
  • Cadastre-se

Sistema de login e senha com banco de dados?


Nathanofr

Posts recomendados

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.

Link para o comentário
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

Link para o comentário
Compartilhar em outros sites

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)

Link para o comentário
Compartilhar em outros sites

  • mês depois...

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

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades 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

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!