Artigo

Sistema de Login em ASP – Parte V

Bom, meu nome é Mauricio Junior. Continuarei essa parte V onde explico e desenvolvo algumas functions dentro do Visual Basic 6.0. É necessário ter as functions antes de desenvolver a página ASP final, que verifica usuário e senha utilizando três camadas.

 

A function mostrada anteriormente foi EXECUTASQLARRAY. A referência 5.1 mostro todas que ainda serão criadas dentro do Global.bas.

 

 

Legenda da Tabela

OK

Functions mostradas e explicadas

NAN

Functions não mostradas

 

 

Function

Explicação da funcionalidade

Ok

ExecutaSQLArray

Essa function serve para executar algum comando SQL que retorne um array de dados. Essa forma de array pode ser entendido como RECORDSET, ou seja, um SELECT.

Ok

 

 

 

ExecutaSQL

Essa function serve para apenas executar um comando SQL, não retornar valor, ou seja, é responsável para executar um: INSERT, UPDATE e DELETE.

NAN

 

 

 

Encryptografar

Essa function serve apenas para receber um parâmetro, criptografar e retornar o valor criptografado. Irei utilizar um componente externo para isso.

NAN

 

 

 

DesenCryptar

Essa function serve apenas para receber um parâmetro criptografado e retornar o valor descriptografado, ou seja, ao contrário da function anterior.

NAN

 

 

 

Referência: 5.1 Visual Basic 6.0

 

 

Agora irei criar a function ExecutaSQL, responsável apenas para executar os comandos SQL INSERT, UPDATE e DELETE. (5.2 – Visual Basic 6.0)

 

 

 

Public Function ExecutaSQL(ByVal SQL As String, _

                           Optional ByVal sMetodoOrigem As String = "") As Boolean

 

On Error GoTo error

 

    If SQL <> "" Then

        CONN.Execute (SQL)

    End If

 

   

error:

 

    If Err.Number <> 0 Then

        ExecutaSQL = False

    Else

        ExecutaSQL = True

    End If

 

End Function

 

Referência: 5.2 – Visual Basic 6.0

 

 

 

Explicação:

 

Analisando a assinatura da function, note que é pública e recebe dois parâmetros do tipo string, sendo um obrigatório e outro opcional. No final, é retornado um valor do tipo Boolean, ou seja, true ou false.

 

 

 

Public Function ExecutaSQL(ByVal SQL As String, _

                           Optional ByVal sMetodoOrigem As String = "") As Boolean

 

Referência: 5.3 – Visual Basic 6.0

 

 

O próximo passo, utilizei o On Error GoTo error. Isso é significa que se algum erro ocorrer dentro dele, automaticamente será redirecionado para a parte de error.

 

 

 

On Error GoTo error

 

Referência: 5.4 – Visual Basic 6.0

 

 

O parâmetro obrigatório ByVal SQL as String é necessariamente o comando SQL enviado por uma function anterior que terá todos os valores necessários para inserir no banco de dados.

 

 

 

   If SQL <> "" Then

        CONN.Execute (SQL)

    End If

 

Referência: 5.5 – Visual Basic 6.0

 

 

 

Na referência 5.5, existe uma condição onde verifico se a variável SQL é diferente de vazio, isso porque esse valor será executado junto ao Execute do objeto de conexão CONN. Já que a variável SQL terá um dos comandos INSERT, UPDATE ou DELETE, não haverá problemas para ser executado.

 

 

 

error:

 

    If Err.Number <> 0 Then

        ExecutaSQL = False

    Else

        ExecutaSQL = True

    End If

 

Referência: 5.6 – Visual Basic 6.0

 

 

Dentro do “error:”, verifico se o é diferente de zero. Se for, a function recebe false, senão for, a function recebe true. Essa atribuição faz com que retorne o valor atribuído. É sempre bom utilizar o On Error GoTo error para prevenir qualquer tipo de erro dentro da dll. 

 

A referência 5.7 mostra a ilustração de toda function mostrada e explicada.

 

Referência: 5.7 – Visual Basic 6.0

 

 

 

 

 

 

Encryptografar

 

 

Antes de qualquer coisas, na function utilizo outro componente dll chamado RC4. O mesmo possui a function EnCrypt onde recebe dois parâmetros. O primeiro parâmetro é do tipo string, ou seja, o valor decriptografado e o outro é do tipo numérico, ou seja, a chave. (5.8)

 

 

 

 

Public Function Encryptografar(ByVal DESCRICAO As String) As String

                              

    'funcao que encryptografa a descricao ou mesmo senha

                              

Dim RC4

Static sRetorno

 

On Error GoTo error

     

    'setando variavel para criptografar e usando

    'um metodo da dll

    'nome da dll RC4DLL.DLL

   

    Set RC4 = CreateObject("RC4DLL.Crypt")

    sRetorno = RC4.EnCrypt(DESCRICAO, 9999)

 

error:

 

    If Err.Number <> 0 Then

        Encryptografar = Err.Number

    Else

        Encryptografar = sRetorno

    End If

   

    Set RC4 = Nothing

End Function

 

Referência: 5.8 – Visual Basic 6.0

 

 

Explicação:

 

 

Public Function Encryptografar(ByVal DESCRICAO As String) As String

 

Referência: 5.9 – Visual Basic 6.0

 

Como o de sempre, essa function é pública e recebe um parâmetro do tipo string. Além de receber parâmetro, retorna um parâmetro do tipo string. Isto é, o parâmetro sem cripitografada é enviado, retornando outro valor totalmente misturado ou criptografado.

 

A dll chamada RC4 é responsável pela criptografia do sistema. (5.10 – Visual Basic 6.0)

 

 

No começo da function declarei duas variáveis. (5.11 – Visual Basic 6.0)

 

 

Dim RC4

Static sRetorno

 

Referência: 5.11 – Visual Basic 6.0

 

 

 

Como dito anteriormente em outras functions, é sempre bom usar “On Error GoTo error”, dessa forma posso pegar o erro “se ocorrer” em qualquer parte do código. Foi a próxima linha que adicionei. (5.12)

 

 

On Error GoTo error

 

Referência: 5.12 – Visual Basic 6.0

 

 

Para a dll responsável pela criptografia deve ser registrada junto ao COM PLUS. Isso apenas para o uso da function dentro do VB. De qualquer forma, criei a function para utilizá-la normalmente. Declarei uma variável anteriormente para depois instanciá-la, criando um objeto da própria dll. (5.13 – Visual Basic 6.0)

 

 

 

 

 

    Set RC4 = CreateObject("RC4DLL.Crypt")

    sRetorno = RC4.EnCrypt(DESCRICAO, 9999)

 

Referência: 5.13 – Visual Basic 6.0

 

 

O comando CreateObject(“RC4DLL.Crypt”) faz com o que o objeto RC4 crie um vínculo com a dll, podendo assim ser usado todas as suas functions publicas. A function retorna uma string criptografada onde armazeno o valor na variável declarada anteriormente chamada sRetorno. Note que passei os parâmetros corretos para criptografar e manter uma “certa” segurança no sistema.

 

 

 

 

 

error:

 

    If Err.Number <> 0 Then

        Encryptografar = Err.Number

    Else

        Encryptografar = sRetorno

    End If

   

    Set RC4 = Nothing

 

Referência: 5.14 – Visual Basic 6.0

 

Para finalizar a function, pergunto se existiu algum erro para retorná-lo ou retornar a variável criptografada. Não esqueça que retorno o valor do tipo string. Essa function em si é usada apenas internamente, ou seja, outras classes usarão essa function. No final de tudo, atribuo o RC4 para nothing. Com isso, destruo o objeto criado anteriormente.

 

Segue a ilustração inteira da function criada. (5.15)

 

Referência: 5.15 – Visual Basic 6.0

 

 

 

 

 

Alguns livros publicados pela editora Ciência Moderna.

 

 

 

Bom, fico por aqui.

Espero ter ajudado em alguma coisa.

Fique de olho nos próximos artigos.

 

 

Mauricio Junior

www.mauriciojunior.org

www.aspneti.com

 

  • Mauricio Junior

    Mauricio Junior