Sistema de Login em ASP Utilizando três camadas . Parte VIII
Olá pessoal, meu nome é Maurício Júnior e estou mais uma vez aqui para mostrar o próximo passo em fazer um sistema de login utilizando ASP com três camadas. Espero poder estar ajudando a todos.
Para quem não acompanhou o desenvolvimento das outras partes, segue um link de cada uma (8.1).
|
Referência: 8.1
No passo anterior, falei e mostrei com figuras como adicionar o arquivo Global.bas e como criar uma classe dentro do seu projeto utilizando o Visual Basic 6.0. Mostrei também como criar um projeto que na hora da compilação, o mesmo irá gerar uma dll onde pode ser registrada no COM PLUS.
Especificamente na “parte II”, mostrei e expliquei o banco de dados de usuários e criação da STORED PROCEDURE para validação de usuários para logar no sistema. Qualquer dúvida, favor acessar e verificar.
Continuarei com o Visual Basic 6.0 para criar uma “function” responsável em verificar ou validar o usuário e senha junto ao banco de dados utilizando a STORED PROCEDURE do nome “ASPSP001_VALIDARUSUARIO” cujo recebe dois parâmetros necessários. Dentro da mesma “function” irei verificar o perfil do usuário e também retorna-lo à página que chamou.
Referência: 8.2
Mostro na referência 8.2 apenas que a classe de segurança está junto com o Global.bas dentro de um mesmo projeto.
Function Validar Usuario
Public Function ValidarUsuario(ByVal USU_CO_USUARIO As String, _ ByVal USU_CO_SENHA As String) As Variant Static sSql As String Static sCoSenha As String Static vRetorno(1) As Variant Static vRetUsuario As Variant Static vRetPerfil As Variant On Error GoTo error If AbreConexao("open") Then sCoSenha = Encryptografar(USU_CO_SENHA) sSql = "ASPSP001_VALIDARUSUARIO '" & USU_CO_USUARIO & "', '" & sCoSenha & "'" vRetUsuario = ExecutaSQLArray(sSql) If IsArray(vRetUsuario) Then sSql = "ASPSP002_CONSULTARPERFILUSUARIO '" & USU_CO_USUARIO & "'" vRetPerfil = ExecutaSQLArray(sSql) End If vRetorno(0) = vRetUsuario vRetorno(1) = vRetPerfil error: If Err.Number <> 0 Then GerarLog "ValidarUsuario", DescricaoErro(1) End If ValidarUsuario = vRetorno AbreConexao "close" End If |
Referência: 8.3
O código (8.3) é uma function responsável para validação de usuário junto ao sistema. Esse código é ainda dentro do Visual Basic 6.0.
A referência (8.4) mostro a imagem como deve ficar a “function” dentro do Visual Basic 6.0 e na classe “clsSeguranca” todo o tipo de verificação do usuário que irá logar no sistema.
Referência: 8.4
Explicação:
Como topo passo começo analisando a assinatura da “function”, esse não será diferente. (8.5)
Public Function ValidarUsuario(ByVal USU_CO_USUARIO As String, _ ByVal USU_CO_SENHA As String) As Variant |
Referência: 8.5
Note que a function ValidarUsuario é pública e possui dois parâmetros de entrada do tipo string e retorna um array do tipo Variant. Esse tipo geralmente é usado para retornar array e muito usado dentro do Visual Basic 6.0
Em seguida, declarei as variáveis a serem usadas dentro da function. (Referência 8.6)
Static sSql As String Static sCoSenha As String Static vRetUsuario As Variant Static vRetPerfil As Variant |
Referência: 8.6
On Error GoTo error If AbreConexao("open") Then |
Referência: 8.7
O código (8.7) declarei o On Error GoTo error para poder pegar qualquer tipo de erro que ocorrer dali
sCoSenha = Encryptografar(USU_CO_SENHA) sSql = "ASPSP001_VALIDARUSUARIO '" & USU_CO_USUARIO & "', '" & sCoSenha & "'" vRetUsuario = ExecutaSQLArray(sSql) |
Referência: 8.8
A variável declarada anteriormente, uso para criptografar a senha enviada do site em asp que por si manda para o componente desenvolvido
Em seguida, depois de criptografar usando a function devidamente desenvolvida, monto o SQL utilizando uma STORED PROCEDURE do banco de dados passando os parâmetros necessários. A SP foi criada em passos anteriores, seguida da explicação. Não esqueça de colocar as aspas simples e duplas quando o parâmetro é do tipo “string” e apenas aspas duplas para o valor que for do tipo “numérico”.
A linha seguinte é atribuindo ao array declarado anteriormente e utilizo a function “ExecutaSQLArray” passando a string SQL montada anteriormente. Essa function retorna um array de dados.
If IsArray(vRetUsuario) Then sSql = "CPESP002_CONSULTARPERFILUSUARIO '" & USU_CO_USUARIO & "'" vRetPerfil = ExecutaSQLArray(sSql) End If |
Referência: 8.9
A referência 8.9, verifico com a condição IsArray passando o array atribuído anteriormente, isto é, primeiro verifico se tem dados para executar uma outra STORED PROCEDURE que consulta o perfil do usuário. No próximo passo irei falar mais sobre essa SP. A linha abaixo, atribuo a outra variável de array a function ExecutaSQLArray passando o SQL montado, por final, termino a condição com o END IF.
vRetorno(0) = vRetUsuario vRetorno(1) = vRetPerfil error: If Err.Number <> 0 Then GerarLog "ValidarUsuario", DescricaoErro(1) End If ValidarUsuario = vRetorno AbreConexao "close" End If |
Referência: 8.10
Explicação:
Bom, as duas primeiras linhas pegam os vetores de usuário e perfil atribuindo ao vetor que será retornado junto ao sistema ou function que chamou. Na declaração falada, mostro que esse array poderia ter duas posições 0 e 1. (8.11)
Static vRetorno(1) As Variant |
Referência: 8.11
A variável tendo duas posições, posso adicionar na posição zero valores e na posição um valores. (8.12)
vRetorno(0) = vRetUsuario vRetorno(1) = vRetPerfil |
Referência: 8.12
A referência 8.13, serve para, se ocorrer algum tipo de erro dentro do código da function o mesmo será redirecionado automaticamente para dentro da parte error do código.
error: If Err.Number <> 0 Then GerarLog "ValidarUsuario", DescricaoErro(1) End If ValidarUsuario = vRetorno AbreConexao "close" |
Referência: 8.13
Ainda com a referência 8.13, verifico se o erro é diferente de zero. Se for diferente, gero o log de erro mandando a classe e a descrição do erro. No final retorno para a function que chamou a variável vRetorno (8.14) e fecho a conexão (8.15).
ValidarUsuario = vRetorno |
Referência: 8.14
AbreConexao "close" |
Referência: 8.15
Bom, fico por aqui. Espero ter ajudado de alguma forma.
O próximo passo, irei falar como registrar a dll no COM PLUS e chamada de uma página ASP 3.0.
Qualquer dúvida favor entrar em contato.
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