Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Fox Mulder

Senha em ASP

Recommended Posts

Pessoal, tenho um problema com o site do meu setor na empresa.

 

Temos (meu chefe e eu) uma página inicial (egatev3.htm) e nela vários links para páginas .asp que fazem consultas em bancos de dados. Criamos uma página chamada egatev21.htm, e é por ela que os usuários entram e são requisitados login e senha que estão armazenados em um banco de dados. Cada página .asp tem um código no início do arquivo para verificar se o usuário já fez login e permitir o acesso caso já tenha feito, ou direcionar pra página de login caso não tenha feito (evitando que alguém tente entrar direto em um link, sem ter que fazer login).

 

Suspeitamos que apesar da função ser pública, a variável pode não ser. O que sabemos de asp e html aprendemos na internet, por meio de tutoriais, portanto, para quem não sabia nada, até q o site ficou bom. =)

 

Os problemas:

 

- Ao fazer o login na página egatev21.htm, o usuário cai certinho na página egatev3.htm. Mas se ele tentar entrar em algum link, ele é redirecionado pra página de login novamente. Fazendo o login pela segunda vez, ele volta a ser redirecionado pra página egatev3.htm de novo, ao clicar num link, é redirecionado pra página de login de novo e fica nisso eternamente, não é possível pra ninguém ver algum link.

 

- A página egatev3.htm não tem o código asp que deveria verificar se o cara está logado ou não, aparentemente, o asp não funciona dentro do htm.

 

Vou copiar abaixo os códigos de cada arquivo. Se alguma alma boa puder me ajudar via msn, fico grato! fhbsmulder@hotmail.com

 

arquivo "rlogin.asp":

 

<%Public MatrizLog()redim MatrizLog(5)'0 - ultimo acesso'1 - usuario'2 - Nivel'3 - Nome do Usuario'4 - id do usuario no banco'5 - ip do usuáriodim UsuValidDim NUsuDim SUsuDim DataAtuDim HoraAtudim UsuIPNUsu = request.form("txtUsuario")SUsu = request.form("txtSenha")DataAtu = CStr(Year(now)) & "/" & CStr(month(now)) & "/" & CStr(Day(now))HoraAtu = CStr(Hour(now)) & ":" & CStr(Minute(now)) & ":" & Cstr(Second(now))UsuValid = ValidaUsuario(NUsu, SUsu)if UsuValid thenresponse.write "OK"if NUsu = SUsu thensession("LogInfo") = MatrizLogresponse.redirect("alsenha.asp?usuario=" & NUsu)elseresponse.redirect("index1.asp")End Ifelse'response.write "Invalido"'response.redirect("index.htm")end ifresponse.expires=0%><%Function ValidaUsuario(Usuario, senha)dim oConn 'conexao ao banco de dadosdim oRec 'tabela recordsetdim StrConn 'String de conexaodim StrSql 'String de consultadim FS 'Objeto FileSystemdim PosArq 'Posição do arquivo filesystemdim EncKey 'Chave de encriptaçãodim UsuExiste dim UsuSenhadim UsuOprdim UsuNiveldim UsuIDdim UsuIPdim UsuUACdim UsuRef'response.write( "<HTML><BODY>EncKey : " & EncKEy & "</BOBY></HTML>")caminho = "/bd/acesso.mdb"set oConn = CreateObject("ADODB.Connection")set oRec = createObject("ADODB.Recordset")oConn.open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="& Server.MapPath(""& caminho &"") &";Persist Security Info=False"oRec.CursorLocation = 3oRec.CursorType = 2StrSql = "Select * from cadastro where login = '" & usuario & "';"oRec.open StrSql, oConn,3,2UsuExiste = falseIf oRec.RecordCount > 0 thenUsuExiste = trueoRec.CloseStrSql = "Select * from cadastro where login = '" & usuario & "' and " _& " senha = '" & senha & "';"oRec.Open StrSql, oConn,3,2if oRec.RecordCount > 0 thenUsuNivel = CInt(oRec.Fields("acesso"))UsuId = oRec.Fields("Nome")ValidaUsuario = trueUsuRef = CLng(oRec.Fields("id_gerente"))end ifend ifif UsuExiste thenif ValidaUsuario thenMatrizLog(1) = UsuIDMatrizLog(2) = CInt(UsuNivel)MatrizLog(3) = UsuarioMatrizLog(4) = UsuRefUsuIP = request.servervariables("REMOTE_ADDR")MatrizLog(5) = UsuIPMatrizLog(0) = UsuACresponse.redirect("egatev3.htm")elseValidaUsuario = False'response.redirect("index1.asp")end if elseValidaUsuario = False'response.redirect("index1.asp")end ifoRec.CloseoConn.Close set oRec = Nothingset oConn = Nothingend Function%>
Tem mais uma parte em html abaixo, mas acho que não precisa escrever aqui, certo?

 

código no início de cada link ".asp"

 

<%dim UsuarioMatrizLog = session("loginfo")if isArray(MatrizLog) thenUsuario=MatrizLog(3)elseresponse.redirect("egatev21.htm")end if%>
OBRIGADO DESDE JÁ PELA AJUDA! ABRAÇO!

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara, não sei se pra você resolve, mas poruqe não usa uma sessão. Quando login valido armazena um valor na sessão e em cada página verifica se a sessão é válida, sem precisar esse mega código

Compartilhar este post


Link para o post
Compartilhar em outros sites

Já tem uma session alí, a "loginfo", mas não sei onde está o problema pro código não funcionar, conhece alguém que poderia me ajudar com isso?Como disse no primeiro post, não sei se a informação é gravada na session, não sei se o problema é a variável ser pública ou é algum erro em alguma outra parte do código, montamos isso baseado em informações achadas na internet, por isso temos grande dificuldade em achar erros.Ah, desculpe por ter criado o tópico no lugar errado e obrigado por movê-lo para o certo. =)

Compartilhar este post


Link para o post
Compartilhar em outros sites

tenta esse:

pagina login.asp

<%
Set conconexao = Server.CreateObject("ADODB.Connection")
conconexao.open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\bancos\banco.mdb;"

var_usuario = Trim(Replace(Request.Form("usuario"), "'", "''"))
var_senha = Trim(Replace(Request.Form("senha"), "'", "''"))

If Not IsEmpty(Request.Form("submit")) then
	
Set rs3 = Server.CreateObject("ADODB.Recordset")
sql = "SELECT id, usuario, senha FROM usuarios  WHERE usuario = '"& var_usuario &"' AND senha = '"& var_senha &"' "
rs3.Open sql,conconexao,3

	If rs3.EOF Or rs3.BOF Then
		response.write("<script>alert('Usuário ou senha incorretos!');history.go(-1)</script>"
	else
		Session("s_usuario") = rs3("usuario")
		rs3.close()
		set rs3 = nothing
		Response.Redirect("cliente.asp")
	End IF
End IF
conconexao.close()
set conconexao = nothing

%>

e nas outras pagina coloca so isso

<% 
if len(Session("s_usuario")) > 0 then
reponse.redirect("login.asp")
%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Velho, obrigado, baseado na sua ajuda, meu chefe e eu conseguimos fazer o que precisávamos. Vou postar o código abaixo:

 

Na página login.asp ficou assim:

<%'********* A parte abaixo é onde verifica o login e senha digitados com o cadastrado no banco de dados.NUsu = request.form("txtUsuario")susu = request.form("txtsenha")caminho = "/bd/Acesso.mdb"session("caminho")=caminhoset conconexao = Server.CreateObject("ADODB.Connection")conconexao.open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="& Server.MapPath(""& caminho &"") &";Persist Security Info=False"Set rs3 = Server.CreateObject("ADODB.Recordset")sql = "SELECT nome , login FROM cadastro WHERE login = ('"&NUsu&"') and senha = ('"&susu&"')"rs3.Open sql,conconexao,3,3x = rs3.recordcount	If x > 0 Then	   Session("Nome") = rs3("Nome")	   Response.Redirect("egatev3.asp")	else' *********A parte abaixo grava registro de acesso com ip, hora e o que foi visto no site   Set objConn = Server.CreateObject("ADODB.Connection")   objConn.Open "DBQ=" & Server.MapPath("/historico/historico.mdb") & ";Driver={Microsoft Access Driver (*.mdb)}","username","password"   nome = NUsu   aplicacao = "*** Tentativa indevida ***"   IP = request.servervariables("REMOTE_ADDR")   if len("ip") > 0 then	  usuip = ip   else	  usuip = "desconhecido"   end if   Origem = "Desconhecida"   datahora = now()   strQuery = "insert into historico values ('"&nome&"' , '"&usuip&"' , '"&aplicacao&"' , '"&datahora&"' , '"&origem&"')"   Set ObjRs = objConn.Execute(strQuery)   objConn.close   Set objRs = Nothing   Set objConn = Nothing   Response.write("<script>alert('Usuário ou senha incorretos!');history.go(-1)</script>")End IFrs3.closeset rs3 = nothingconconexao.closeset conconexao = nothing%>
Nas outras páginas ".asp" (ou links presentes na página principal), colocamos isso:

<% '********* A parte abaixo faz a verificação se o cara fez loginif len(Session("nome")) > 0 then'*********A parte abaixo grava registro de acesso com ip, hora e o que foi visto no siteSet objConn = Server.CreateObject("ADODB.Connection")objConn.Open "DBQ=" & Server.MapPath("/historico/historico.mdb") & ";Driver={Microsoft Access Driver (*.mdb)}","username","password"nome = Session("nome")aplicacao = "Pagina de entrada"IP = request.servervariables("REMOTE_ADDR")if len("ip") > 0 then   usuip = ipelse   usuip = "desconhecido"end ifOrigem = "Entrada"datahora = now()strQuery = "insert into historico values ('"&nome&"' , '"&usuip&"' , '"&aplicacao&"' , '"&datahora&"' , '"&origem&"')"Set ObjRs = objConn.Execute(strQuery)objConn.closeSet objRs = NothingSet objConn = Nothing%>'***************Aqui entra o código normal da página, com o que ela deve exibir, fazer, etc... e depois entra este outro código, para quando o usuário tentar entrar sem fazer login ele ser redirecionado pra página de login.' Código que redireciona pra página de login, caso o usuário não esteja logado:<%elseresponse.redirect("index1.asp")End if%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.