Vendo os questionamentos relativos ao controle de usuários em páginas WEB e sabendo que existem tópicos aqui que abordam o tema mas usando .PHP, resolvi postar a dica usando .ASP.
O processo de controle consiste em ver se o usuário já está logado ou não por meio do objeto session do ASP.
Código: Selecionar todos
<% if Session("logado") = "nao" then
response.redirect("NaoLogado.asp")
end if %>
<html>
...
</html>
Se a respostar for nao o fluxo de operação será direcionado para a página NaoLogado.asp. Caso a resposta seja diferente, continua a operação abrindo alguma página de informações ao usuário.
No trecho a seguir, o script em ASP critica se o usuário está cadastrado em uma tabela de acesso e permite ou não que fique logado no sistema.
Código: Selecionar todos
<HTML lang="PT" dir="LTR">
<HEAD>
<TITLE>Contato</TITLE>
<META http-equiv="content-type" content="text/html; charset=windows-1251">
</HEAD>
<BODY>
<%
Response.Buffer = True
pos = instrrev(lcase(request.servervariables("path_translated")),lcase(scriptrelativefolder)& "\" & lcase(formaction))
db_dir = left(request.servervariables("path_translated"), pos-1 )
db = db_dir &".\"
set cnn= server.createobject("adodb.connection")
cnn.open "Driver={Microsoft dBase Driver (*.dbf)};;DBQ="& db &";"
set acessos=cnn.execute("select * from acessos where liberado = 'S'" )
Session("logado")="nao"
do while not acessos.eof
vnome = acessos("nome")
vsenha = acessos("senha")
vnivel = acessos("nivel")
vpaginainicial = acessos("pagina")
vliberado = acessos("liberado")
If Request.form("UserEmail") = (vnome) then
If Request.form("UserPass") = (vsenha) then
response.clear
Session("usuario")=(vnome)
Session("logado")="sim"
If not IsEmpty(vpaginainicial) then
response.redirect(vpaginainicial)
end if
end if
end if
acessos.movenext
loop
Session("logado")="nao"
response.redirect("join_erro.asp")
%>
</BODY>
</HTML>
Pega o caminho real de onde estaria a tabela a ser manuseada montando o caminho:
Código: Selecionar todos
pos = instrrev(lcase(request.servervariables("path_translated")),lcase(scriptrelativefolder)& "\" & lcase(formaction))
db_dir = left(request.servervariables("path_translated"), pos-1 )
db = db_dir &".\"
Código: Selecionar todos
set cnn= server.createobject("adodb.connection")
cnn.open "Driver={Microsoft dBase Driver (*.dbf)};;DBQ="& db &";"
Código: Selecionar todos
set acessos=cnn.execute("select * from acessos where liberado = 'S'" )
Código: Selecionar todos
Session("logado")="nao"
'response.cookies("autenticacao")("anome") = ""
'response.cookies("autenticacao")("asenha") = ""
'response.cookies("autenticacao")("liberado") = " "
Código: Selecionar todos
do while not acessos.eof
vnome = acessos("nome")
vsenha = acessos("senha")
vnivel = acessos("nivel")
vpaginainicial = acessos("pagina")
vliberado = acessos("liberado")
If Request.form("UserEmail") = (vnome) then
If Request.form("UserPass") = (vsenha) then
Código: Selecionar todos
vnome = acessos("nome")
vsenha = acessos("senha")
vnivel = acessos("nivel")
vpaginainicial = acessos("pagina")
Caso o usuário seja encontrado na filtragem, a variável logado será setado com sim e o usuário será redirecionado para a sua página pessoal.
O formulário de login do usuário precisa de dois campos apenas, o de nome(type text) e o de senha(type password). O Formulário deve ser do tipo POST.
Os ids de cada campo são UserEmail e UserPass, respectivamente.
Quando digo:
Estou requisitando do formulário os campos UserEmail e UserPass.Request.form("UserEmail")
Então mãos a obra.
