public IEnumerable <PersonUser> GetLocalUsers(string searchString, string domain)
        {
            // Create Authorization Invocation Context
            var authorizedInvocationContext =
                CreateAuthorizedInvocationContext();

            // Invoke SSO Admin FindPersonUsersAsync operation
            var personUsers = authorizedInvocationContext.
                              InvokeOperation(() =>
                                              _ssoAdminBindingClient.FindPersonUsersAsync(
                                                  new ManagedObjectReference
            {
                type  = "SsoAdminPrincipalDiscoveryService",
                Value = "principalDiscoveryService"
            },
                                                  new SsoAdminPrincipalDiscoveryServiceSearchCriteria
            {
                searchString = searchString,
                domain       = domain
            },
                                                  int.MaxValue)).Result.returnval;

            if (personUsers != null)
            {
                foreach (var personUser in personUsers)
                {
                    yield return(new PersonUser(this)
                    {
                        Name = personUser.id.name,
                        Domain = personUser.id.domain,
                        Description = personUser.details.description,
                        FirstName = personUser.details.firstName,
                        LastName = personUser.details.lastName,
                        EmailAddress = personUser.details.emailAddress,
                        Locked = personUser.locked,
                        Disabled = personUser.disabled
                    });
                }
            }
        }