internal static ADObjectSearcher SidIdentityResolver(object identityObject, string searchBase, CmdletSessionInfo cmdletSessionInfo, out bool useSearchFilter) { useSearchFilter = true; if (identityObject != null) { SecurityIdentifier securityIdentifier = null; string str = identityObject as string; if (string.IsNullOrEmpty(str) || !Utils.TryParseSid(str, out securityIdentifier)) { securityIdentifier = identityObject as SecurityIdentifier; if (securityIdentifier == null) { ADPrincipal aDPrincipal = identityObject as ADPrincipal; if (aDPrincipal == null || !(aDPrincipal.SID != null)) { return(null); } else { return(IdentityResolverMethods.BuildSidBaseSearcher(aDPrincipal.SID, searchBase, cmdletSessionInfo)); } } else { return(IdentityResolverMethods.BuildSidBaseSearcher(securityIdentifier, searchBase, cmdletSessionInfo)); } } else { return(IdentityResolverMethods.BuildSidBaseSearcher(securityIdentifier, searchBase, cmdletSessionInfo)); } } else { throw new ArgumentNullException("identityObject"); } }