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

Integrar aplicação ASP ao AD


Raposo

Pergunta

9 respostass a esta questão

Posts Recomendados

  • 0

Prezado Barleta,

Eu possuo uma aplicação (intranet) em asp com bd em Access e queria integrar o acesso restrito dela ao Active Directory, minha dúvida é o seguinte:

1- A Configuração do IIS 6.0 é simplesmente colocar como senha básica do win

2- Implementar o código em qual parte no acesso ou posso controlar pelo banco?

Segue o código que eu possuo:

<%

dim submit

dim UserName

dim Password

UserName = ""

Password = ""

Domain = ""

submit = request.form("submit")

if submit = "Authenticate" then

UserName = request.form("UserName")

Password = request.form("Password")

Domain = request.form("Domain")

result = AuthenticateUser(UserName, Password, Domain)

if result then

response.write "<h3>Authentication Succeeded!</h3>"

else

response.write "<h3>Authentication Failed!</h3>"

end if

end if

response.write "<hr><form method=post>"

response.write "<table>"

response.write "<tr>"

response.write "<td><b>Username: </b></td><td><input type=""text"" name=""UserName"" value=""" & UserName & """ size=""30""><br><small>Enter ""dominio.com.br\UserName"" or ""EMAIL REMOVED"" or ""\UserName"" in a single domain environment</small></td>"

response.write "</tr>"

response.write "<tr>"

response.write "<td><b>Password: </b></td><td><input type=""password"" name=""Password"" value=""" & Password & """ size=""30""></td>"

response.write "</tr>"

response.write "<tr>"

response.write "<td><b>AD Domain: </b></td><td><input type=""text"" name=""Domain"" value=""" & Domain & """ size=""30""><br><small>Enter the AD Server FQDN, IP Address, or DN<br>Examples: ""adserver1.ourdomain.com"" or ""192.168.1.150"" or ""192.168.1.150/dc=adserver1,dc=ourdomain,dc=com""</small></td>"

response.write "</tr>"

response.write "<tr>"

response.write "<td> </td><td><input name=""submit"" type=""submit"" value=""Authenticate""></td>"

response.write "</tr>"

response.write "</table>"

response.write "</form>"

response.end

function AuthenticateUser(UserName, Password, Domain)

dim strUser

' assume failure

AuthenticateUser = false

strUser = UserName

strPassword = Password

strQuery = "SELECT cn FROM 'LDAP://" & Domain & "' WHERE objectClass='*' "

set oConn = server.CreateObject("ADODB.Connection")

oConn.Provider = "ADsDSOOBJECT"

oConn.Properties("User ID") = strUser

oConn.Properties("Password") = strPassword

oConn.Properties("Encrypt Password") = true

oConn.open "DS Query", strUser, strPassword

set cmd = server.CreateObject("ADODB.Command")

set cmd.ActiveConnection = oConn

cmd.CommandText = strQuery

on error resume next

set oRS = cmd.Execute

if oRS.bof or oRS.eof then

AuthenticateUser = false

else

AuthenticateUser = true

end if

set oRS = nothing

set oConn = nothing

end function

%>

Editado por Raposo
Link para o comentário
Compartilhar em outros sites

  • 0

Barleta,

Segue o código que eu preciso fazer acessar via Active Directory e não via banco normal, como posso fazer?

<!--#include file="../conection.asp" -->

<% if trim(request("login"))="" then%>

<script language="javascript">

alert("Por favor, preencha o campo Login");

history.go(-1);

</script>

<% response.end

elseif trim(request("senha"))="" then%>

<script language="javascript">

alert("Por favor, preencha o campo Senha");

history.go(-1);

</script>

<% end if %>

<!--#include file="inc_crypto.asp"-->

<%

response.buffer = true

Vnom_login = trim(replace(Request.Form("login"),"'","´"))

Vdes_senha = trim(replace(Request.Form("senha"),"'","´"))

chave = "sbsv3"

des_senha_crypto = replace(RC4(Vdes_senha, chave),"'","´")

set lista=server.createobject("ADODB.Recordset")

'sqlstr = "select * from admin where usuario='"&session("user")&"' and senha='"&request("senha")&"'"

sqlstr = "Select * from PER_Usuarios "

sqlstr = sqlstr & "Where nom_login = '"&Vnom_login&"' "

'sqlstr = sqlstr & "and des_senha = '"&Vdes_senha&"' "

sqlstr = sqlstr & "and des_senha_crypto = '"&des_senha_crypto&"' "

lista.open sqlstr, conexao,3,3

if lista.eof then

response.redirect "meio.asp?log=N"

else

tpo_senha = lista("tpo_senha")

'verificar se a conta está desabilitada

If tpo_senha="D" then

response.redirect "senha.asp?senha=D"

End If

'verificar se a senha expira no primeiro acesso

If tpo_senha="E" then

conexao.execute("update USUARIOS set tpo_senha='D' where cod_usuario="& lista("cod_usuario"))

End If

'verificar se a senha já expirou no nº de dias

If trim(tpo_senha)="P" and lista("dta_cadastro") < date then

tpo_senha = "E" 'parametro para trocar de senha na proxima pagina

conexao.execute("update PER_USUARIOS set tpo_senha='D' where cod_usuario="& lista("cod_usuario"))

End If

session("user") = lista("nom_login")

Session("cod_usuario") = lista("cod_usuario")

Session("des_senha") = lista("des_senha")

Session("dt_acesso") = date()

Session("hr_acesso") = time()

Set rsVerIP = server.createobject("ADODB.Recordset")

sql = "select * from admin_log_IP where IP='"&request.servervariables("REMOTE_ADDR")&"'"

rsVerIP.open sql, conexao, 3, 3

If rsVerIP.eof then

rsVerIP.Addnew

rsVerIP("IP") = request.servervariables("REMOTE_ADDR")

rsVerIP.Update

Set rsID_IP = conexao.execute("select ID_IP from admin_log_IP order by ID_IP DESC")

ID_IP = rsID_IP("ID_IP")

Else

ID_IP = rsVerIP("ID_IP")

End If

dt_now = year(now) & "/" & month(now) & "/" & day(now)

conexao.execute("insert into admin_log (data,hora,ID_admin,ID_IP) values (#"&dt_now&"#,#"&time&"#,"&lista("cod_usuario")&","&ID_IP&")")

lista("total_acessos") = lista("total_acessos") + 1

lista("dt_acesso") = date

lista("hr_acesso") = time

lista.Update

lista.Close

conexao.Close

response.redirect "index.asp?tpo_senha="&tpo_senha

end if

rsVerIP.Close

Set rsID_IP=nothing

Set rsVerIP=nothing

Set LISTA=nothing

conexao.close

Set conexao=nothing

%>

Desde já agardeço

Link para o comentário
Compartilhar em outros sites

  • 0

Bareta

Estou desenvolvendo a integração da minha aplicação de intranet com o Active Directory. Porém o mesmo está atribuindo

um erro "error '8007054b' " na seguinte linha "Set objRootDSE = GetObject("LDAP://rootDSE")".

Segue o código:

<%
Vlogin = Request.Form("login")
Vsenha = Request.Form("senha")
VDominio = "meudominio"

Set objRootDSE = GetObject("LDAP://rootDSE") ---> 'Linha que dá erro!
Set objDSObj = GetObject("LDAP:")

On Error resume Next

Set objAuth = objDSObj.OpenDSObject("LDAP://"& VDominio &"/rootDSE", VLogin, VSenha, 1)

If Err.number = -2147023570 

then   

Response.Redirect("erro.asp?flag=InvalidLogin")

End If

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,5k
×
×
  • Criar Novo...