Ir para conteúdo
Fórum Script Brasil
  • 0

Login


lsardinha

Pergunta

Fiz uma página para o usuário poder logar na minha intranet, e esta funcionando beleza, ele verifica se o usuário esta cadastrado, se a senha esta correta e tudo.

O que preciso saber é como fazer para ele ter ou não permissão para acessar determinada página, se tenho que colocar algum codigo nela ou se tenho que mudar algo nesse código abaixo.

<%
	Set Conn = Server.CreateObject("ADODB.Connection")
	Caminho = "DBQ=" & Server.MapPath("dados/intranet.mdb")
	conn.Open "DRIVER={Microsoft Access Driver (*.mdb)};" & Caminho
	Set rs = conn.Execute("Select * from usuarios")

	vlogin = Request.Form("usuario")
	vsenha = Request.Form("senha")

	Set Rc = Server.CreateObject("ADODB.RecordSet")
	sql = "Select * from usuarios where usuario='"& vlogin &"'"
	Rc.Open sql, conn, 3, 3

	data = Date()
	hora = time()
%>

       <%	
	if Rc.RecordCount < 1 then
  Session("nivel") = 0 %>
            <% Response.Write("<span class=""texto"">Não existe esse login.<br><br><a href=""index.shtml""></a></span>")
  Set conn = Server.CreateObject("ADODB.Connection")
  Caminho = "DBQ=" & Server.MapPath("dados/sites.mdb")
  conn.Open "DRIVER={Microsoft Access Driver (*.mdb)};" & Caminho
  Set Rs = Server.CreateObject("ADODB.RecordSet")
  sql = "INSERT INTO erros (nome,data,hora,site,erro) VALUES ('"& vlogin &"','"& data &"','"& hora &"','Serasa','Não existe login.')"
  Rs.Open sql, conn, 3, 3
	else
  if Rc("senha") = vsenha then 
  	Session("nivel") = Rc("serasa")
  	Session("nome") = Rc("nome")
  	if Session("nivel") = 1 then
    data = Date()
    hora = time()
    Set conn = Server.CreateObject("ADODB.Connection")
    Caminho = "DBQ=" & Server.MapPath("dados/sites.mdb")
    conn.Open "DRIVER={Microsoft Access Driver (*.mdb)};" & Caminho
    Set Rs = Server.CreateObject("ADODB.RecordSet")
    sql = "INSERT INTO log (nome,data,hora,site) VALUES ('"& Session("nome") &"','"& data &"','"& hora &"','Serasa')"
    Rs.Open sql, conn, 3, 3
    Response.Redirect("index.asp?lcl=entrandoserasa")
  	else 
    Session("nivel") = 0
    Response.Write("<span class=""texto""><strong>"& Rc("nome") &"</strong>,<br><br>Você não possui acesso a esse sistema. Caso você queira ter acesso, solcite a COINF pelo ramal 4973.<br><br><a href=""index.asp?lcl=intro""></a></span>")
  	end if
  else
  	Session("nivel") = 0
  	Response.Write("<span class=""texto""><strong>"& Rc("nome") &"</strong>,<br><br>Sua senha está errada. Verifique se você a digitou corretamente, levando em consideração maiúsculas e minúsculas. Tente novamente com a senha válida.<br><br><a href=""index.asp?lcl=intro""></a></span>")
  	Set conn = Server.CreateObject("ADODB.Connection")
  	Caminho = "DBQ=" & Server.MapPath("dados/sites.mdb")
  	conn.Open "DRIVER={Microsoft Access Driver (*.mdb)};" & Caminho
  	Set Rs = Server.CreateObject("ADODB.RecordSet")
  	sql = "INSERT INTO erros (nome,data,hora,site,erro) VALUES ('"& vlogin &"','"& data &"','"& hora &"','Serasa','Senha inválida - "& vsenha &"')"
  	Rs.Open sql, conn, 3, 3
  end if
	end if
%>

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

Exato.

Toda página que você quiser limitar o acesso, terá que conter o seguinte código


if session("nivel") <> 0 then
continua executando a pagina
else
response.redirect ("login.asp")
end if

E quando o usuário se logar, na SESSÃO terá que haver o "nível" de acesso dele.

Link para o comentário
Compartilhar em outros sites

  • 0

Brother!!!

Como é local a intranet, ultilizei o seguinte método à uma agencia de comunicação :

<%

	Usuario = CStr(Trim(Request.Form("usuario")))
	Senha = CStr(Trim(Request.Form("senha")))
	Call Login(Usuario)


Function Login(Usuario)

	If Not isEmpty(Usuario) Then

  cBanco = Server.MapPath("./db/intranet.mdb")
  strConn = "Provider = Microsoft.jet.oledb.4.0; Data Source = " & cBanco 
  Set Conn = Server.CreateObject("Adodb.Connection")
  Conn.Open(strConn)

  Set objCmd = Server.CreateObject("adodb.command")

  With objCmd
  	.ActiveConnection = Conn
  	.CommandType = adCmdStoredProc
  	.CommandText = "cst_Login"
  End With
  objCmd.Parameters.Append objCmd.CreateParameter(":usuario", advarchar, AdParamInput, 20, "1")
  objCmd(":usuario") = Usuario

  Set Rs = Server.CreateObject("adodb.recordset")
  Set Rs = objCmd.Execute
  objCmd.Parameters.Delete ":Usuario"
  Set objCmd = Nothing

  If Rs.Eof Then
  	Call eLogin("Usuario")
  Else
  	vDados = Rs.GetRows
  	Call vSenha(vDados(1,0))
  	Rs.Close
  	Set Rs = Nothing
  	Conn.Close
  	Set Conn = Nothing
  End If
	Else
  Call eLogin("Usuario")
	End If

End Function


Function vSenha(sBanco)
	If StrComp(Senha, sBanco, 1) <> 0 Then
  Call eLogin("Senha")
	Else
  Response.Cookies("Login")
  Response.Cookies("Login")("User") = Usuario
  Response.Cookies("Login")("Senha") = Senha
  Response.Cookies("Login").Expires = Hour(Now()+2)
  Response.Redirect("intranet.asp")
	End If
End Function


Function eLogin(Campo)
	Response.Cookies("Login")
	Response.Cookies("Login")("User") = Usuario
	Response.Redirect("index.asp?Erro=" & Server.UrlEncode(Campo))
End Function

%>

Sendo que ´há uma stored procedures do banco de dados, que agiliza muito a consulta, e os métodos de validação, utilizei cookies.

Abraços!!!

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...