public static IEnumerable <ForeignUser> Get_DomainForeignUser(Args_Get_DomainForeignUser args = null)
        {
            if (args == null)
            {
                args = new Args_Get_DomainForeignUser();
            }

            var SearcherArguments = new Args_Get_DomainUser
            {
                LDAPFilter      = @"(memberof=*)",
                Domain          = args.Domain,
                Properties      = args.Properties,
                SearchBase      = args.SearchBase,
                Server          = args.Server,
                SearchScope     = args.SearchScope,
                ResultPageSize  = args.ResultPageSize,
                ServerTimeLimit = args.ServerTimeLimit,
                SecurityMasks   = args.SecurityMasks,
                Tombstone       = args.Tombstone,
                Credential      = args.Credential
            };

            var ForeignUsers = new List <ForeignUser>();
            var Results      = GetDomainUser.Get_DomainUser(SearcherArguments);

            foreach (LDAPProperty result in Results)
            {
                foreach (var Membership in result.memberof)
                {
                    var Index = Membership.IndexOf(@"DC=");
                    if (Index != 0)
                    {
                        var GroupDomain           = Membership.Substring(Index).Replace(@"DC=", @"").Replace(@",", @".");
                        var UserDistinguishedName = result.distinguishedname;
                        var UserIndex             = UserDistinguishedName.IndexOf(@"DC=");
                        var UserDomain            = result.distinguishedname.Substring(UserIndex).Replace(@"DC=", @"").Replace(@",", @".");

                        if (GroupDomain != UserDomain)
                        {
                            // if the group domain doesn't match the user domain, display it
                            var GroupName   = Membership.Split(',')[0].Split('=')[1];
                            var ForeignUser = new ForeignUser
                            {
                                UserDomain             = UserDomain,
                                UserName               = result.samaccountname,
                                UserDistinguishedName  = result.distinguishedname,
                                GroupDomain            = GroupDomain,
                                GroupName              = GroupName,
                                GroupDistinguishedName = Membership
                            };
                        }
                    }
                }
            }
            return(ForeignUsers);
        }
Exemple #2
0
 public static IEnumerable <ForeignUser> Find_ForeignUser(Args_Get_DomainForeignUser args = null)
 {
     return(FindForeignUser.Find_ForeignUser(args));
 }
Exemple #3
0
 public static IEnumerable <ForeignUser> Get_DomainForeignUser(Args_Get_DomainForeignUser args = null)
 {
     return(GetDomainForeignUser.Get_DomainForeignUser(args));
 }