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

Latest Images

Vimeo 10.7.0 by Vimeo.com, Inc.

Vimeo 10.7.0 by Vimeo.com, Inc.

HANGAD

HANGAD

MAKAKAALAM

MAKAKAALAM

Doodle Jump 3.11.30 by Lima Sky LLC

Doodle Jump 3.11.30 by Lima Sky LLC

Doodle Jump 3.11.30 by Lima Sky LLC

Doodle Jump 3.11.30 by Lima Sky LLC

Vimeo 10.6.2 by Vimeo.com, Inc.

Vimeo 10.6.2 by Vimeo.com, Inc.

Vimeo 10.6.1 by Vimeo.com, Inc.

Vimeo 10.6.1 by Vimeo.com, Inc.



Latest Images

Vimeo 10.7.0 by Vimeo.com, Inc.

Vimeo 10.7.0 by Vimeo.com, Inc.

HANGAD

HANGAD

MAKAKAALAM

MAKAKAALAM

Doodle Jump 3.11.30 by Lima Sky LLC

Doodle Jump 3.11.30 by Lima Sky LLC

Doodle Jump 3.11.30 by Lima Sky LLC

Doodle Jump 3.11.30 by Lima Sky LLC

Vimeo 10.6.1 by Vimeo.com, Inc.

Vimeo 10.6.1 by Vimeo.com, Inc.