Solved

Query Active Directory

Posted on 2004-09-15
5
607 Views
Last Modified: 2008-05-30
I need to query Active Directory using ASP.NET / VB.NET to find all groups in the AD that a user is a member of.  I can use this code to return some information.  I want to return the list of groups as an array that I can then search through to find specific Groups that belong to that user.

        Dim entry As New DirectoryServices.DirectoryEntry("LDAP://int.domain.net")
        Dim mySearcher As New System.DirectoryServices.DirectorySearcher(entry)
        Dim result As System.DirectoryServices.SearchResult
        mySearcher.Filter = ("(anr= jdoe)")

        For Each result In mySearcher.FindAll()
            Response.Write(result.GetDirectoryEntry().Path)
        Next

Thanks for the help.
0
Comment
Question by:imsolost
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 3
  • 2
5 Comments
 
LVL 5

Expert Comment

by:jmacmicking
ID: 12074065
Why not open the user's account in AD directly?  For instance:

Set oUser = GetObject("LDAP://cn=Doe John, ou=IS, dc=int, dc=domain, dc=net")
For Each oGroup in oUser.Groups
    Response.Write(oGroup.Path)
Next

That's assuming you have the LDAP name of the user; if not you can use the WinNT provider (it works just as well for getting group names).  The line looks like this:

Set oUser = GetObject("WinNT://domain/" & username)

This should be a lot faster then user the search function.  If you need help putting these in an array as well let me know.
0
 
LVL 7

Author Comment

by:imsolost
ID: 12074512
is that classic asp or asp.net?

When I try this I get the following error.
**********************************  ERROR ***************************
Public member 'Path' on type '_ComObject' not found.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.MissingMemberException: Public member 'Path' on type '_ComObject' not found.

********************************* END ERROR *************************

It gives that error on the line
response.Write(oGroup.Path)

Any ideas?
Thanks
0
 
LVL 5

Accepted Solution

by:
jmacmicking earned 500 total points
ID: 12074957
I'm sorry; that should be oGroup.Name; don't know why I typed .path.
0
 
LVL 7

Author Comment

by:imsolost
ID: 12075438
Ok the code works exactly as I wanted.  Thank you.  

I know you have them as objects but do oUser and oGroup have a defined data type?

Thanks
0
 
LVL 5

Expert Comment

by:jmacmicking
ID: 12076376
IADsUser and IADsGroup, respectively.  Part of the ActiveDS type library.  Out of curiousity I did a quick search to find the equivilant in .NET and found this tutorial on MSDN, http://msdn.microsoft.com/library/default.asp?url=/library/en-us/sds/sds/enumerating_user_memberships.asp, that does exactly what you want user the DirectoryEntry object of .NET.
0

Featured Post

Free Tool: IP Lookup

Get more info about an IP address or domain name, such as organization, abuse contacts and geolocation.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
Master DC completely died 15 74
User Folder Creation and Permissions 3 45
Powershell script to list number of users in an OU 6 27
Notepad++ Question 11 25
This article describes my battle tested process for setting up delegation. I use this process anywhere that I need to setup delegation. In the article I will show how it applies to Active Directory
Did you know that more than 4 billion data records have been recorded as lost or stolen since 2013? It was a staggering number brought to our attention during last week’s ManageEngine webinar, where attendees received a comprehensive look at the ma…
This Micro Tutorial hows how you can integrate  Mac OSX to a Windows Active Directory Domain. Apple has made it easy to allow users to bind their macs to a windows domain with relative ease. The following video show how to bind OSX Mavericks to …

734 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question