I want to get the list of groups which the user is in.
This is my code:
PrincipalContext ctx = new PrincipalContext(ContextType.Domain, "mydomain.ac.uk", "DC=mydomain,DC=AC,DC=UK", "user", "password");
UserPrincipal user = UserPrincipal.FindByIdentity(ctx, IdentityType.SamAccountName, "MyUser");
PrincipalSearchResult<Principal> results = user.GetGroups();
foreach(Principal p in results)
{
Response.Write(p.Name);
}
When I run, I got the following error at the line Response.Write(p.Name);
System.Runtime.InteropServices.COMException: The specified directory service attribute or value does not exist.
When I checked the count of the results, it returned 9 and the first group is DomainUsers
.
How can I iterate all 9 groups in the list? Thanks.
The following is the list of users I get:
try something like
I know it sounds dumb, but it has worked for me in the past. Your results look like it only actually found 1 security group and 8 "other" types of groups. Those "other" groups may not possess those attributes.
When omitting the LDAP container property as described in PrincipalContext Class, the user running the code must have read permissions to both the default
User
Container (i.e.CN=Users,DC=yourDomain,DC=COM
) and theComputers
Container (i.e.CN=Computers,DC=yourDomain,DC=COM
).If the user does not have the required permissions you will get the following error messages: