USUÁRIO:      SENHA:        SALVAR LOGIN ?    Adicione o VBWEB na sua lista de favoritos   Fale conosco 

 

  Dicas

  ASP - Active Server Page    (Miscelâneas)

Título da Dica:  Proteger as Páginas ASP com Password que està em BD
Postada em 3/10/2003 por ^HEAVY-METAL^            
Todos nós temos de proteger páginas nos projetos em que nos envolvemos. Aqui vai um simples exemplo que uso para proteger as páginas. Primeiro a página de login (entrada.htm ), a pagina que faz a verificacao do password e nome na base de dados (security.asp) e as linhas de código que têm de ser usadas nas outras pagina para serem protegidas ( site.asp ).

Isto funciona por meio de uma variável de sessão ( session variable ), sempre que estamos com o browser aberto esta session existe, se a fecharmos deixa de ter efeito e temos de voltar a introduzir a password.

Arquivo: entrada.htm

E Apenas um simples form the HTML que manda o nome e password para o arquivo security.asp

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">



<html>

<head>

    <title>Entrada</title>

</head>



<body>

<form method="POST" action="security.asp"><BR>

<BR>

<div align="center">Nome<center><p><input type="text" name="nome" size="10"><br>Password

<div align="center"><center><p><input type="password" name="password" size="10"><br>

<input type="hidden" value="CHECKEM" Name="STATUS" >

<input type="submit" value="Login"></p>

</center></div>

</form>



</body>

</html>

Arquivo: security.asp

Este script faz 4 passos

1-ligacao DSN-Less a BD
2-Verifica se os form não foi submetido com campos vazios
3-Caso negativo da mensagem, e volta para a entrada.htm em 2 segundos
4-Aqui vai verificar se estes existem na BD, Caso negativo quer dizer que não esta certo e o utilizador recebe a mensaggem e em dois segundos e mandado de volta para entrada.htm
5-Caso positivo e a password estiver certa o session("pass") e dado o valor "true" o utilizador é enviado para a próxima página ("site.asp)

<% Response.buffer=true

' ligacao DSN-less a BD

dim fn, rs, rp, cs

sub openrs (d,q)

    fn=d & ".mdb"

    rp = Server.MapPath(fn)

    rp = Left(rp,Len(rp)-len(fn))

    ' aqui tens especificar o path da BD

    strnew="K:\WWWROOT\tutorials\DBlogin\BD\"

    ' mas tambem podes desligar essa linha e por no strnew aqui em baixo rp a mas nesse caso a BD tem de estar na mesma directoria o que nao e muito bom para este caso por cause de seguranca

    cs = "DBQ=" & d &".mdb;DefaultDir="& strnew &";Driver={Microsoft Access Driver (*.mdb)};"

    Set rs = Server.CreateObject("ADODB.Recordset")

    rs.open q, cs, 3, 3, 1

end sub



' aqui fazemos o request dos dados do form de entrada.htm

    nome=trim(request("nome"))

    password=trim(request("password"))

' aqui verificamos se nenhum campo ficou vazio

    if nome="" OR password="" then

        Response.write "Nao preenenchue um campo"

        Response.addheader "REFRESH", "2;URL=entrada.htm"

else

    ' aqui vamos abrir a BD no sitio do nome e password

    'openrs "pas","select * from user where (nome = '" & nome & "') AND where (password = '" & password & "')"

openrs "pas","select * from user where nome Like'"&nome&"' AND password like '"&password &"'"

            ' aqui vimos se o record existe

            if not rs.eof then

                session("pass")=True

                rs.close

                set rs=nothing

                response.redirect "site.asp"

                'Caso negativo o user e manda-do para o entrada.htm

            else

                response.write "Password e nome nome nao encontrado"

                Response.addheader "REFRESH", "2;URL=entrada.htm"

            end if

end if

%>

Arquivo: site.asp

Esta é a linha que tens de or nas páginas, que queres proteger, a única coisa que as páginas tem de ter é a extensao .asp. Tão simples como isso ;-)

<% if NOT session("pass")=true then Response.redirect "entrada.htm"%>


T+,

 


CyberWEB Network Ltda.    © Copyright 2000-2024   -   Todos os direitos reservados.
Powered by HostingZone - A melhor hospedagem para seu site
Topo da página