开发者

Why does GroupPrincipal.FindByIdentity return null even when I know the group exists?

Why would

GroupPrincipal group = GroupPrincipal.FindByIdentity(getPrincipalContext(), 
                                                         "TEST_DESTINATION_GRP");

return null? I know for a fact that TEST_DESTINATION_GRP exists under the groups organizational unit.

My code:

private void addUserToGroup(string userName, string groupName)
{
    try
    {
        UserPrincipal user = UserPrincipal.FindByIdentity(getPrincipalContext(), IdentityType.SamAccountName, "jcolon");
        GroupPrincipal group = GroupPrincipal.FindByIdentity(getPrincipalContext(), "TEST_DESTINATION_GRP");
        //just to show that I can access AD            
        ArrayList x = getUserGroups(userName);

        foreach (var xy in x)
        {
            Console.WriteLine(xy);
        }//I can access AD FINE

        if (group == null)
        { Console.WriteLine("Wtf!"); }
        Console.WriteLine(user); 
        Console.WriteLine(group + "empty why!!!!");
    }
    catch (Exception e)
    { 
        //log e
    }
}

private Princ开发者_JAVA百科ipalContext getPrincipalContext()
{
    PrincipalContext oPrincipalContext = new PrincipalContext(ContextType.Domain, sDomain,sDefaultOU);          
    return oPrincipalContext;
}   

The output of the above code is:

Domain Users
GRP_ADMIN_SERVER
GRP_PROG_III
CTXXA-FlexUser
CTXXA-Users
Wtf
Abanico, Elnora@MSH
empty why!!!!

Any thoughts?


What are the values in sDomain and sDefaultOU in your getPrincipalContext method??

I would try the following steps:

  1. Construct your PrincipalContext without any domain or OU name - in that case, your default domain and its top-level node will be used:

    PrincipalContext ctx = new PrincipalContext(ContextType.Domain);
    

    Search now - does it find your group you're looking for??

  2. Check to make sure the domain and sDefaultOU values are correct - if you connect your principal context to one OU, you cannot search in another OU, obviuosly (unless that's a child-OU of the OU you're connecting to).

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜