Link to home
Start Free TrialLog in
Avatar of jculkincys
jculkincysFlag for United States of America

asked on

Get user's LDAP attribute with C# in asp.net

I want to connect to a Sun LDAP server using C# in asp.net and check to see if a given user has a specific LDAP attribute. Below is the code that I have so far but its not working.

The netid variable is set to a string that contains the username
DirectoryEntry de = new DirectoryEntry("LDAP://myldapserver/o=my1sto,o=my2ndo,ou=People");
	de.Username = "user";
	de.Password = "password";
                DirectorySearcher searcher = new DirectorySearcher(de);
		searcher.Filter = "(uid=" + netid + ")";
		searcher.SearchScope = SearchScope.Subtree;
                // I want to see if the given user has the pdsRole attribute set to a specific value - lets sat "TEST"
		searcher.PropertiesToLoad.Add("pdsRole");
 
		SearchResult oResult = searcher.FindOne();
	
// its from here that I get confused
// am I using the SearchResult  object class right?
// How do I extract values from it and check them

Open in new window

Avatar of CB_Thirumalai
CB_Thirumalai
Flag of India image

Hi, try the one below.  You may use try, catch to get any exception if you have
if (sr != null)
{
    // Get user's security and distribution groups
    string groups = GetGroups(sr);
 
    if (groups.Length > 0) {
        if (groups.ToLower().IndexOf("<your preferred group>") >= 0) {
               // do something
        } else {
            // do else
        }
    }
}

Open in new window

Avatar of jculkincys

ASKER

I get the following error

CS0103: The name 'GetGroups' does not exist in the current context
ASKER CERTIFIED SOLUTION
Avatar of CB_Thirumalai
CB_Thirumalai
Flag of India image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Have you got the solution for this?