webForumDet fria alternativet

Köra vbscript i ASP

5 svar · 493 visningar · startad av G8

G8Medlem sedan jan. 20011 213 inlägg
#1
<script language="vbscript" runat="server">
<!--
'Public Function UserInfo(LoginName)
'Get Domain name from RootDSE object.
Set objRootDSE = GetObject("LDAP://Rootdse")
strDomain = objRootDSE.Get("DefaultNamingContext")

Const ADS_SCOPE_SUBTREE = 2
Set objConnection = CreateObject("ADODB.Connection")
Set objCommand = CreateObject("ADODB.Command")
objConnection.Provider = "ADsDSOObject"
objConnection.Open "Active Directory Provider"
Set objCommand.ActiveConnection = objConnection
objCommand.CommandText = "Select mail from " _ 
& " 'LDAP://"&strDomain&"'  where userPrincipalName='användarnamnet'" 
Set objRecordSet = objCommand.Execute
objRecordSet.MoveFirst
Do Until objRecordSet.EOF
Emailaddress = objRecordSet.Fields("mail").Value
response.write("email: " & objRecordSet.Fields("mail").Value)
objRecordSet.MoveNext
Loop
-->
</script>
<%response.write(Emailaddress)%>

Funkar perfa i en .vbs-fil men inte när jag kör det i en aspsida. Får inte fram nånting...

Vill alltså ha fram emailadressen för den användaren som besöker sidan genom en sökning i LDAP...

Idéer?

//G8

ZaimanMedlem sedan dec. 20014 239 inlägg
#2
<%
'Hämta inloggad användare
strUserName = replace(Request.ServerVariables("REMOTE_USER"),"MITTDOMÄNAMN\","")

'Koppla mot Domänen med ldap
Set objRootDSE = GetObject("LDAP://rootDSE")
strRootDSE = objRootDSE.Get("defaultNamingContext")

'Skapa anslutning och öppna den med behörigt konto
Set objConnection = CreateObject("ADODB.Connection")
objConnection.Provider = ("ADsDSOObject")

objConnection.Open "ADs Provider", _
          "CN=minadministratör,CN=Users,DC=mindomän,DC=SE", _
          "administratörslösenordet"

'Plocka ut användarens uppgifter med hjälp av inlogningsnamn
Set objCommand = CreateObject("ADODB.Command")

objCommand.ActiveConnection = objConnection

objCommand.CommandText = _
"<LDAP://" & strRootDSE & ">;(&(objectCategory=User)" & _
"(samAccountName=" & strUserName & "));distinguishedName,sAMAccountName,name;subtree"

Set objRecordSet = objCommand.Execute

If objRecordset.RecordCount = 0 Then
   Response.Write("Ingen användare funnen!<br>")
   Response.Flush
   Response.End
Else
	strDN = objRecordset.Fields("distinguishedName")
        Set objectRecordSet = Nothing
        objConnection.close
        Set objConnection = Nothing
End If

'Ldap fråga om användaren
SQLStmt = "SELECT mobile, name, mail, displayName " & _
          "FROM 'LDAP://mindc.domän.se/"& strDN &"' " & _
          "WHERE objectClass='*' "

'Skapa anslutning
Set Conn = CreateObject("ADODB.Connection")
Conn.Provider = "ADSDSOObject"

' Anslutningsuppgifter mot AD
Conn.Open "ADs Provider", _
          "CN=MinAdministratör,CN=Users,DC=MINDOMÄN,DC=SE", _
          "Mittadministörslösenord"

Set rs = Conn.Execute(SQLStmt)
           %>

Så här har jag löst det på min .ASP sida.

Hoppas det fungerar för dig.

G8Medlem sedan jan. 20011 213 inlägg
#3

Nope, får permission denied på rad 27 (Set objRecordSet = objCommand.Execute) fastän jag authenticate som admin...

ZaimanMedlem sedan dec. 20014 239 inlägg
#4

Har du rätt sökväg till admin?

objConnection.Open "ADs Provider", _
          "[B]CN=minadministratör,CN=Users,DC=mindomän,DC=SE[/B]", _
          "administratörslösenordet"

Kontrollera att du får ut rätt användare.

'Hämta inloggad användare
strUserName = replace(Request.ServerVariables("REMOTE_USER"),"WINDOWSDOMÄN\","")
G8Medlem sedan jan. 20011 213 inlägg
#5

ska testa

:)

martinpartinMedlem sedan jan. 2001373 inlägg
#6

Denna gillar jag


Dim str_ldapusrname, str_ldappwd
str_ldapusrname = "DOMAIN\USERNAME"
str_ldappwd = "PASSWORD"

' remove domain prefix from username
Dim strUsername, isspos, strstrippeduname, inoofc
    strUsername = Request.ServerVariables("REMOTE_USER")
    isspos = Instr(strUsername, "\")
    inoofc = Len(strUsername)
    isspos = inoofc - isspos
    strstrippeduname = Right(strUsername, isspos)
' connect to ad
Dim conn, SQLStmt

Set conn = Server.CreateObject("ADODB.Connection")

	conn.Provider = "ADsDSOObject"
	conn.Properties("User ID") = str_ldapusrname
	conn.Properties("Password") = str_ldappwd
	conn.Properties("Encrypt Password") = True
	conn.Open "ADProvider"
SQLStmt = "SELECT displayname FROM 'LDAP://DC=DOMAIN,DC=COM' WHERE objectCategory='person' AND objectClass='user' AND sAMAccountname = '"& strstrippeduname &"'"
' return values
Dim rs
Set rs = Conn.Execute(SQLStmt)

Dim str_okname
If RS.EOF or RS.BOF then
str_okname = ""
Else
str_okname = rs.fields.Item(0)
End if

Response.Write(strokname)
146 ms totalt · 3 externa anrop · v20260731065814-full.fb544a5a
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
142 ms — hämta tråd, inlägg och bilagor (db)