Hej på Er! Du behöver först en reference till DirectoryServices Som exemplet visar når du properties med denna syntax:Rookie: ASP.NET - läsa ur globala adressboken
Vore mycket tacksam om Ni skulle vilja hjälpa en Rookie med följande problem:
Skall sätta upp en enklare site med möjlighet att lista alla användare som finns i "Globala adressboken" (läs:Exchange 2003).
Vet inte hur jag initierar deta hela och skapar rätt LDAP-fråga (eller vilken teknik man nu skall använda sig av..
Tacksam antingen för lösningar eller tips till sidor som tangerar detta problemet.
Måste jag köra impersonate eller något på IIS-siten (om jag fattat rätt så är det inte helt rätt tänkt..)
Blir det mycket svårare om min IIS-server inte är med i samma domän, eller är det "bara" att knyckla till någon connector/provider och så lirar det?
....som Ni fattar är det ett blåbär Ni har att göra med...
:-))Sv: Rookie: ASP.NET - läsa ur globala adressboken
Lite VB-kod:
<code>
Imports System.DirectoryServices
'--------------------------
Dim entry As New DirectoryEntry("LDAP://SERVER.se")
myDirectorySearcher = New DirectorySearcher(entry)
entry.AuthenticationType = AuthenticationTypes.FastBind
Dim result As SearchResult
myDirectorySearcher.SizeLimit = 30
myDirectorySearcher.PropertiesToLoad.Add("mail")
myDirectorySearcher.PropertiesToLoad.Add("cn")
myDirectorySearcher.Filter = "(&(objectClass=person)(cn=" & namn & "*))"
Dim ADResults As SearchResultCollection = myDirectorySearcher.FindAll
</code>
Jag minns inte exakt hur det funkade med autentisering, men detta funkar här iaf :)
Och nu har du en del att googla på..Sv: Rookie: ASP.NET - läsa ur globala adressboken
Har hitat lite C#-kod som kanske fungerar, men någon med mer kött på benen kan kanske ge mig sista pusselbitarna. Har skapat en class:
namespace gal
{
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.DirectoryServices;
using System.Collections;
public class aduser
{
public aduser()
{
}
public ArrayList returngal()
{
DirectorySearcher objsearch = new DirectorySearcher();
string strrootdse = objsearch.SearchRoot.Path;
DirectoryEntry objdirentry = new DirectoryEntry(strrootdse);
objsearch.Filter = "(& (mailnickname=*)(objectClass=user))";
objsearch.SearchScope = System.DirectoryServices.SearchScope.Subtree;
objsearch.PropertiesToLoad.Add("cn");
objsearch.PropertyNamesOnly = true;
objsearch.Sort.Direction = System.DirectoryServices.SortDirection.Ascending;
objsearch.Sort.PropertyName = "cn";
SearchResultCollection colresults = objsearch.FindAll();
ArrayList arrGal = new ArrayList();
foreach (SearchResult objresult in colresults)
{
arrGal.Add(objresult.GetDirectoryEntry().Properties["cn"].Value);
}
objsearch.Dispose();
return arrGal;
}
}
}
..men hur skall jag loppa ut dom på en av sidorna. Har börjat så här men inser att min syntax blöder:
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
gal.ADUSER s = new gal.aduser();
gal.DataSource = s.returngal();
gal.DataBind();
gal.Items.Insert(0, new ListItem("GAL"));
for each person(gal.Items) {
Response.Write("Hej: " & Person.???)
}
}
}
Sv:Rookie: ASP.NET - läsa ur globala adressboken
objresult.GetDirectoryEntry().Properties["cn"].Value