Busca online em todo site:

Seja bem vindo(a) Visitante, voc no est logado deseja logar
na comunidade ASPNETi.COM e participar de servios e promoes ? clique aqui.




Título do Artigo

Sistema de Login em ASP Utilizando três camadas - Parte VIII


Data Publicação: 22/9/2006 21:50:37
Total de visualizações: 2530

comente
 


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).

 

 

Parte I

Parte II

Parte III

Parte IV

Parte V

Parte VI

Parte VII

 

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 vRetorno(1) As Variant

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 em diante. A linha seguinte do código é uma condição para verificar se a conexão junto ao banco e dados está aberta. Essa function AbreConexao(“open”) está dentro do arquivo base que criei anteriormente chamado Global.bas. O mesmo foi explicado em passos anteriores.

 

 

 

    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 Visual Basic 6.0. Essa function “Encryptografar” está dentro do arquivo Global.bas, explicado e mostrado em passos anteriores.

 

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.

 

Livros publicados:

 

 

 

 

Mauricio Junior

mauricio@aspneti.com

www.ascompras.com

www.aspneti.com

                 



Total de visualizações: 2530
voltar   comente  subir

Autor:


Por:Mauricio Junior
Maurício Júnior
Formado pela Faculdade Anhanguera, Especialista pela FGV (Fundação Getúlio Vargas), Pós-Graduação em Docência Superior e cursando Mestrado na UNB Engenharia Elétrica; .
Tenho 27 anos e possuo sete livros publicados pela editora Ciência Moderna no ano de 2009. Sou Certificado Microsoft MCP, MCAD e MVP, faço parte da comunidade ASPNETI.COM, onde publico artigos, vídeos, ebooks e livros Publico artigos, vídeos e podcast em outras comunidades. Trabalho como Analista de Sistemas / Desenvolvedor na empresa ATP S/A. Blog:  blog.mauriciojunior.orgSite pessoal  www.mauriciojunior.org


Comentários:

Comentado por: Johnnathan - 8/6/2007 18:42:31
Estou seguindo seu tutorial desde o inicio. Mas não conseguido criar a dll.
Aparece a seguinte mensagem: Compile erro: Expected: identifier.

Se você puder me ajudar, ficarei grato

Sistema de Login em ASP Utilizando três camadas
Comentado por: Maurício Junior - 21/11/2007 9:01:34
Olá Johnnathan

Tente seguir os passos direitinho que funciona sem problemas, qualquer coisa entre em contato.

Comente (dê sua opinião): VOCÊ PRECISA ESTAR LOGADO

Comentário:
Código Imagem:  (digite o código da imagem respeitando maiúsculo e minúsculo)

Favor digitar o código da imagem para cadastramento.

 

Outros Artigos do Autor

Sistema de Login em ASP – Parte II
Criando uma aplicação de uma maneira nova para melhor publicação
Linguagem de programação: Nunca faça isso - C#.NET
Chama método que está dentro do COM PLUS (COM +)
MinimizeBox no Celular
Conecte - netBOOKS
Resources e Internacionalização usando Visual Studio.NET 2005 (Parte II)
Desenvolvendo Aplicativos para TV Digital - Parte 3
Windows Home Server
Misturando dados
Ebook Grátis Microsoft
Vídeos Online Gratuitos
Orientação a Objetos com Visual Studio.NET (parte 2)
Como fechar todos os forms de um aplicativo para dispositivo móvel
Propaganda Microsoft - Vemos como será e não como é.
Vírus - Full video Pamela Anderson
Chrome - não reconhecimento...
Criando Pastas no Mail com o Macbook
Orientação a Objetos - Microsoft PetShop 3.0
Vídeo Live Search
Seria o novo Windows Mobile 7 ?
Criptografia de String de Conexão no Web.Config
Trabalhando com o componente Accordion
Copiando Script
Microsoft Mobile Explorer 3.0
Promoção Assinatura Grátis DevMedia e ASPNETi.COM
Web abrindo aplicações locais
Reconhecimento do Google
Visual Studio 2010 Beta 2
II Encontro - Um Sucesso!!! (em Brasília)
CES 2008: Keynote do Bill Gates
Vídeo - Themes/Skin/Stylo
NDOC para versão framework 2.0
DataGrid Mobile
Criando XML a partir do DataSet Tipado com Visual Studio.NET 2005 – Parte I

Publicidade:

[sumir] [aparecer]
LAYERDEV




Informaes Online:

Usurios Online: 475
Artigos:  663
Vdeos:  47
PodCast's:  31
Frum:  3098
Empregos:  1226
Usurios Cadastrados: 5794

Categoria de Artigos

Vdeos

Enquete - D sua opinio

 Os podcasts tem sido proveitoso pra você?

 

Colaboradores

Foto Autor autor: Mauricio Junior   
publicou 382 artigo(s).
Foto Autor autor: Júlio Battisti   
publicou 51 artigo(s).
Foto Autor autor: Fabio Galante Mans   
publicou 28 artigo(s).
Foto Autor autor: Kleber Becerra   
publicou 10 artigo(s).
Foto Autor autor: Ramon Durães   
publicou 6 artigo(s).
Foto Autor autor: Ebenézer de Souza   
publicou 5 artigo(s).
Foto Autor autor: Fabio Aguiar   
publicou 4 artigo(s).
NETITC