Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

ASP .Net C# - Checke om der er et medlem i en AD gruppe?

2 views
Skip to first unread message

Jacob d'Andrade

unread,
Mar 18, 2011, 2:24:50 AM3/18/11
to
Hej

Jeg har problemer med at skrive noget kode der kan give mig et true/false
svar p� hvor vidt der er medlemmer i en given AD gruppe. Jeg kan sagtens
liste medlemmer og hente v�rdier fra dem, men jeg kan ikke hitte ud af
hvordan jeg blot tester om en given gruppe har medlemmer eller ej.

Jeg h�ber der er en skrap .Net c# kode karl der kan give lidt guldkorn :-)

Mvh Jacob (voldsom meget nybegynder i c#)

Min kode til at liste medlemmer, som helt sikkert kan g�res meget smartere
og hurtigere ser s�ledes ud:

// logger p� AD'et og finder samtlige brugere i gruppen
DirectoryEntry de = new DirectoryEntry("LDAP://DC=" +
(string)Session["CurDom"] + ",DC=local");
DirectorySearcher ds = new DirectorySearcher(de,
"(objectClass=person)(objectClass=user)");
ds.Filter = "(memberOf=CN=" + (string)Session["CurShortSite"] +
"-ITVejleder" + ",OU=Grupper,OU=SK-" + (string)Session["CurShortSite"] +
",DC=" + (string)Session["CurDom"] + ",DC=local)";
ds.PropertiesToLoad.Add("samaccountname");

// Opretter en ny sortedlist
SortedList sl = new SortedList();

// K�rer listen med brugere igennem.
string groupmember = "";
foreach (SearchResult sr in ds.FindAll())
{
// Tilf�jer samaccountname til sortedlisten
groupmember = sr.Properties["samaccountname"][0].ToString();
sl.Add(groupmember, "");
}

Finn Stampe Mikkelsen

unread,
Mar 20, 2011, 7:56:28 PM3/20/11
to
"Jacob d'Andrade" skrev i meddelelsen news:4d82fab2$0$23763$1472...@news.sunsite.dk...
>
> // logger på AD'et og finder samtlige brugere i gruppen

> DirectoryEntry de = new DirectoryEntry("LDAP://DC=" +
>(string)Session["CurDom"] + ",DC=local");
> DirectorySearcher ds = new DirectorySearcher(de,
>"(objectClass=person)(objectClass=user)");
> ds.Filter = "(memberOf=CN=" + (string)Session["CurShortSite"] +
>"-ITVejleder" + ",OU=Grupper,OU=SK-" + (string)Session["CurShortSite"] +
>",DC=" + (string)Session["CurDom"] + ",DC=local)";
> ds.PropertiesToLoad.Add("samaccountname");

Du kan på dette sted tilføje følgende kode...:

SearchResultCollection results = ds.FindAll();

int Antal = results.Count;

Antal vil nu indeholde det antal entries der er i den pågældende gruppe. Hvis du vil lave en metode der afgør det, kunne du gøre
følgende:

privvate bool CheckForMembers()
{
// logger på AD'et og finder samtlige brugere i gruppen


DirectoryEntry de = new DirectoryEntry("LDAP://DC=" +
(string)Session["CurDom"] + ",DC=local");
DirectorySearcher ds = new DirectorySearcher(de,
"(objectClass=person)(objectClass=user)");
ds.Filter = "(memberOf=CN=" + (string)Session["CurShortSite"] +
"-ITVejleder" + ",OU=Grupper,OU=SK-" + (string)Session["CurShortSite"] +
",DC=" + (string)Session["CurDom"] + ",DC=local)";
ds.PropertiesToLoad.Add("samaccountname");

//Hent all medlemmer
SearchResultCollection results = ds.FindAll();

//Returner true hvis der er 1 eller flere medlemmer og false hvis der er mindre end 1 medlem
return (results >= 1 ? true : false);
}


/Finn


Jacob d'Andrade

unread,
Mar 21, 2011, 4:27:07 AM3/21/11
to

"Finn Stampe Mikkelsen" <sta...@city.dk> skrev i meddelelsen
news:4d86942d$0$23762$1472...@news.sunsite.dk...

Jamen, det er simpelthen perfekt :-) Jeg takker mange gange for din hjælp.

Mvh Jacob

Finn Stampe Mikkelsen

unread,
Mar 21, 2011, 12:02:36 PM3/21/11
to
"Jacob d'Andrade" skrev i meddelelsen news:4d870bdc$0$23752$1472...@news.sunsite.dk...

> DirectorySearcher ds = new DirectorySearcher(de,
>
> "(objectClass=person)(objectClass=user)");
> ds.Filter = "(memberOf=CN=" + (string)Session["CurShortSite"] +
> "-ITVejleder" + ",OU=Grupper,OU=SK-" + (string)Session["CurShortSite"] +
> ",DC=" + (string)Session["CurDom"] + ",DC=local)";
> ds.PropertiesToLoad.Add("samaccountname");
>
> //Hent all medlemmer
> SearchResultCollection results = ds.FindAll();
>
> //Returner true hvis der er 1 eller flere medlemmer og false hvis der er mindre end 1 medlem
> return (results >= 1 ? true : false);
> }
>
>
> /Finn
>
>Jamen, det er simpelthen perfekt :-) Jeg takker mange gange for din hjælp.
>
>Mvh Jacob

Ingen årsag... Spørg endeligt igen. Kan jeg hjælpe gør jeg gerne... Evt. også på direkte mail.. ;-)

/Finn

0 new messages