Quantcast
Channel: Login com bcrypt.net
Viewing all articles
Browse latest Browse all 7

Login com bcrypt.net

$
0
0

Mais uma vez estou aqui.

Tenho que fazer um sistema de login para entrar no sistema! Uso a implementação do bcrypt para .NET deste site: http://derekslager.com/blog/posts/2007/10/bcrypt-dotnet-strong-password-hashing-for-dotnet-and-mono.ashx para fazer o registro do novo usuário. Eis o código usado do botao de incluir um novo registro (estou usando interfaces): 

Public Class Registro
    Implements iDal(Of Registros)

    Protected _Conexao As iConexao
    'Public logon As Login
    Public valorrecebido, hash As String
    Public Sub New(Conexao As iConexao)
        InitializeComponent()
        _Conexao = Conexao
        _Conexao.Open()
    End Sub


    Public Sub Dipose() Implements iDisposable.Dipose
        GC.SuppressFinalize(Me)
    End Sub

    Private Sub btSignUp_Click(sender As Object, e As EventArgs) Handles btSignUp.Click
        Dim reg As New Registros
        reg.nome = txNome.Text
        reg.usuario = txUsuario.Text
        Insert(reg)
    End Sub
    Public Function Insert(Model As Registros) As Registros Implements iDal(Of Registros).Insert
        hash = HashPassword(txSenha2.Text)
        If (txSenha.Text <> txSenha2.Text) Then
            MessageBox.Show("Senhas não conferem")
        Else
            Dim sql As String = "INSERT INTO login_fusion(nome,usuario,senha) VALUES (@nome,@usuario,@senha)"
            Using mycommand As MySqlCommand = _Conexao.GetConexao.CreateCommand()
                With mycommand
                    .CommandText = sql
                    .CommandType = CommandType.Text
                    .Connection = myconnection
                    .Parameters.Add("@nome", MySqlDbType.VarChar).Value = txNome.Text
                    .Parameters.Add("@usuario", MySqlDbType.VarChar).Value = txUsuario.Text
                    .Parameters.Add("@senha", MySqlDbType.VarChar).Value = hash
                End With
                Try
                    myconnection.Open()
                    mycommand.ExecuteNonQuery()
                    If (MessageBox.Show("Incluir novo registro?", "Registro", MessageBoxButtons.YesNo, MessageBoxIcon.Question) = Windows.Forms.DialogResult.Yes) Then
                        Limpar(Me) 'sub para limpar todos os campos declarada como publica em um módulo
                    Else
                        Me.Hide()
                        'tem que mostrar o formulário de login
                    End If
                Catch ex As MySqlException
                    MessageBox.Show("Error: " + ex.ToString, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
                Finally
                    myconnection.Close()
                End Try
            End Using
        End If
        Return Model
    End Function

End Class

O referido site diz o seguinte para autenticar o usuário em C#:

bool matches = BCrypt.CheckPassword(candidate, hashed);

Sendo que hashed é a senha criptograda vinda do mysql e candidate a senha do textbox!

Preciso de fazer a autenticação do usuário no login, como proceder usando queries parametrizadas? 



Viewing all articles
Browse latest Browse all 7


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>