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

.NET ProgrammingASP.NET

Avatar of undefined
Last Comment
CB_Thirumalai

8/22/2022 - Mon
CB_Thirumalai

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

ASKER
jculkincys

I get the following error

CS0103: The name 'GetGroups' does not exist in the current context
ASKER CERTIFIED SOLUTION
CB_Thirumalai

Log in or sign up to see answer
Become an EE member today7-DAY FREE TRIAL
Members can start a 7-Day Free trial then enjoy unlimited access to the platform
Sign up - Free for 7 days
or
Learn why we charge membership fees
We get it - no one likes a content blocker. Take one extra minute and find out why we block content.
See how we're fighting big data
Not exactly the question you had in mind?
Sign up for an EE membership and get your own personalized solution. With an EE membership, you can ask unlimited troubleshooting, research, or opinion questions.
ask a question
CB_Thirumalai

Have you got the solution for this?
Experts Exchange is like having an extremely knowledgeable team sitting and waiting for your call. Couldn't do my job half as well as I do without it!
James Murphy