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 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
Sign up to our newsletter
Receive our latest updates about programming languages, software, database, books, ebooks, classes, jobs and more.
Related articles
Sistema de Login com ASP 3.0 usando três camadas – Parte I
Descrição do artigo publicado no aspneti.com, cada artigo com seu resumo
Criando XML a partir do DataSet Tipado com Visual Studio.NET 2005 – Parte I
Descrição do artigo publicado no aspneti.com, cada artigo com seu resumo
Sistema de Login em ASP – Parte II
Descrição do artigo publicado no aspneti.com, cada artigo com seu resumo