Q. Comment rechercher dans l'annuaire global d'exchange a partir d'un serveur IIS 4.0 ?
A. C'est parfaitement possible en utilisant l'Active Directory
Service interface .(ADSI) , plus d'infos a
http://www.microsoft.com/windows2000/library/howitworks/activedirectory/adsilinks.asp
Il faut d'abord disposer d'un serveur NT 4.0 Sp5 , IIS 4.0 , puis y rajouter l'extension ADSI
Voici un exemple de code ASP qui explique comment lire l'annuaire exchange global.
Pensez a remplacer Monserveurexchange et DomaineserveurExchange par les IP ou nom correspondant.
==============debut de la page
<%@ LANGUAGE="VBSCRIPT" %><% '---------------------------------------------------------------------
' Debut de l'asp elle meme , tous ca généreusement
inspiré des travaux
' de Ian Morrish sur Wsh.
'---------------------------------------------------------------------
Const ADS_SCOPE_SUBTREE=2
'---------------------------------------------------------------------
' traite l'arrivée de la variable
' origine form ou string
'---------------------------------------------------------------------
If request.queryString("nom") <> "" then
searchAlias = UCASE(request.queryString("nom"))
End If
If request.Form("nom") <> "" then
searchAlias = UCASE(request.Form("nom"))
End If
'--------------------------------------------------------------------
' Tapez ici l'adresse de votre serveur
' -------------------------------------------------------------------
exchServer = "Monserveurexchange"
Set con = CreateObject("ADODB.Connection")
Set Com = CreateObject("ADODB.Command")
' Ouvre la connection
con.Provider = "ADsDSOObject"
'---------------------------------------------------------------------
' Pour etre authentifié précisé ici un nom de compte robot
' qui doit appartenir au groupe Administrateur
'---------------------------------------------------------------------
con.Properties("User ID") = "DOmaineNT\RobotLdap"
con.Properties("Password") = "motdepasse"
con.Properties("Encrypt Password") = True
'------------------------------------
' Ouvre la connection
'-------------------------------------
con.Open "Active Directory Provider"
' Lance la commande
Set Com.ActiveConnection = con
'--------------------------------------------------
' Fixe les parametres de la requete LDAP
'---------------------------------------------------
adsPath = "LDAP://" & exchServer & "/o=domaineduserveurexchange"
Com.CommandText = "select ADsPath, title, givenName, sn, telephoneNumber, Department from '" & adsPath & "' where sn='" & searchAlias & "*'"
'-----------------------------------------
'Fixes les préférences
'--------------------------------------
Com.Properties("Page Size") = 100
Com.Properties("Timeout") = 30 ' c'est des secondes
Com.Properties("searchscope") = ADS_SCOPE_SUBTREE 'Definit parADS_SCOPEENUM
Com.Properties("Cache Results") = False ' pas de mise en cache du resultat (economie de memoire)
'--------------------------------------------
'Execute la requete
'--------------------------------------------
Set rs = Com.Execute
'--------------------------------------
' affiche le record set
'----------------------------------------
If rs.BOF and rs.EOF Then%>
<h2 align="center"><font face="Arial">Désolé
, Aucun résultat! </font></h2>
<p><%Else
' avant - arriere
rs.MoveLast
rs.MoveFirst%> </p>
<table BORDER="1">
<tr>
<th align="center"><font face="Arial"><small>Service </small></font></th>
<th align="center"><font face="Arial"><small>civilité </small></font></th>
<th align="center"><font face="Arial"><small>Prénom </small></font></th>
<th align="center"><font face="Arial"><small>Nom </small></font></th>
<th align="center"><font face="Arial"><small>Téléphone </small></font></th>
</tr>
<% Do while not rs.EOF if ( rs.EOF = False ) then %>
<tr>
<td align="center"><%=rs.Fields("Department").Value%>
</td>
<td align="center"><%=rs.Fields("Title").Value%>
</td>
<td align="center"><%=rs.Fields("givenName").Value%>
</td>
<td align="center"><%=rs.Fields("sn")%>
</td>
<td align="center"><%=rs.Fields("telephoneNumber").Value%>
</td>
</tr>
<% end if %>
<% rs.MoveNext %>
<% Loop %>
</table>
<%End If%>
</table>
</table>
</body>
</html>
==============fin de la page