|
|
|
||||||||||||||||||||||
|
|||||||||||||||||||||||
|
|||||||||||||||||||||||
Parceiros - CSS para Web Design - S.O.S Designers - Slackware-Brasil - Crie seu Web site - Oficina da Net |
Restringir o acesso a páginas com ASPA muitas pessoas certamente já ocorreu de necessitar que certas páginas de nosso web só possam ser acessadas por usuários previamente autorizados. Mostramos a seguir um método simples, porém eficaz para consegui-lo.
Para salvar a lista de usuários autorizados com seus correspondentes password criaremos em um banco de dados chamada XXXXX (não use um nome óbvio demais) uma tabela que denominaremos USUARIOS com os campos USUARIO e PASSWORD. ![]() Vamos passo a passo: 1.-Criamos uma página com um formulário para que o usuário se identifique. 2.- Efetuaremos a comprovação do usuário e password introduzidos com uma simples consulta à tabela USUARIOS, no caso de que a identificação seja correta criaremos para esse usuário uma variável de sessão com um valor que identifique sua validação como usuário. No caso de que a validação seja errônea, devolvemos ao usuário ao formulário de login com uma mensagem de erro. Login.asp <%if request.form("usuario")="" then%> <form method="POST" action="login.asp"> <p> </p> <p> </p> <p> </p> <p align="center"><%=request.querystring("msg")%></p> <div align="center"> <center> <table border="0" width="50%" bgcolor="#F2F2F2"> <tr> <td width="100%" colspan="2" bgcolor="#0000FF"> <p align="center"><font color="#FFFFFF">Login</font></td> </tr> <tr> <td width="50%">Usuario:</td> <td width="50%"><input type="text" name="usuario" size="20"></td> </tr> <tr> <td width="50%">Password: </td> <td width="50%"> <input type="password" name="password" size="20"></td> </tr> <tr> <td width="100%" colspan="2"> <p align="center"><input type="submit" value="Enviar" name="B1"></td> </tr> </table> </center> </div> </form> <%else 'eliminamos as possíveis aspas da entrada 'para evitar a introdução de sentenças SQL usuario=replace(request.form("usuario"),"'","") password=replace(request.form("password"),"'","") Set Conn = Server.CreateObject("ADODB.Connection") Conn.Open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("\dirBD\xxxxx.mdb")) set rs = CreateObject("ADODB.Recordset") sqltxt="Select * from usuarios where usuario='"&usuario&"' and password= '"&password&"'" 'response.write sqltxt rs.Open sqltxt, conn if not rs.eof then ' nos devolveu um registro, agora veremos se é válido ' com isso evitamos o ataque típico SQL if rs("usuario")=usuario and rs("password")=password then ' se o usuário estiver no banco de dados e a password coincidir sessao("autorizacao")=1 response.redirect "default.asp" end if else sessao("autorizacao")=-1 end if rs.close set rs=nothing conn.close set conn=nothing if sessao("autorizacao")=-1 or session("autorizacao")="" then ' não encontramos o registro ' isso indica que o usuário e/ou a password são errados response.redirect "login.asp?msg=Usuario%20o%20password%20incorreta" end if end if%> Logo, simplesmente, em cada uma das páginas que quisermos que requeiram autorização prévia checaremos essa variável de sessao e permitiremos o passo se a checagem for correta ou caso contrário, re-encaminharemos o usuário à página de identificação. <% if session("autorizacao")<>1 then response.redirect "login.asp" end if%> O sistema nos permitiria inclusive conceder diferentes níveis de acesso a páginas dependendo do usuário, simplesmente atribuindo um diferente valor a sua variável de sessao.
Autoria e outras referências sobre este artigo Dentro deste artigo: + 1 manual relacionado + 2 Categorias relacionadas
Manuais relacionados com este artigo Categorias relacionadas Através das categorias do nosso diretório podem ser encontrados outros tipos de recursos relacionados com este artigo: + Entrar em ASP+ Entrar em Scripts em ASP Comentários dos visitantes Os comentários dos visitantes são para ampliar a informação do artigo. Todos podem participar.
|
| Sobre nós | Copyright | Anuncie | Entrar em contato | <criarweb> |