Tengo que rellenar mi autocompletar PeopleEditor como control basado en brililant ASPTokenInput con todas las personas de mi dominio AD. Reflejar PeopleEditor muestra un verdadero lío en su motor de búsqueda de Active Directory y todas las clases potencialmente útiles son internas.Obtener todos los usuarios del directorio activo en sharepoint
Mi método de prueba funciona bien, pero necesito para obtener todos los usuarios de anuncio (no sharepoint los sitios) para llenar mi lista:
public string GetUsers(string filter)
{
var spWeb = SPContext.Current.Web;
SPUserCollection allusers = spWeb.AllUsers;
List<SPUser> users = allusers.Cast<SPUser>().ToList();
var query = from spUser in users.Select(usr => new {id = usr.ID, name = usr.Name})
.Where(p => p.name.IndexOf(filter, StringComparison.InvariantCultureIgnoreCase) >= 0)
select new {id = spUser.id.ToString(), spUser.name};
return new JavaScriptSerializer().Serialize(query);
}
¿Cómo puedo consultar el directorio activo de esta manera? ¿Es posible recuperar todas las configuraciones de conexión de AD desde Sharepoint? Solo necesito el id y el nombre de usuario para completar mi lista desplegable. Convertir esto a SPUserCollection es otra gran cosa.
Sería muy bueno para usar algunos métodos SP integradas como esto:
[SubsetCallableExcludeMember(SubsetCallableExcludeMemberType.UnsupportedSPType)]
public static IList<SPPrincipalInfo> SearchWindowsPrincipals(SPWebApplication webApp, string input, SPPrincipalType scopes, int maxCount, out bool reachMaxCount)
¿Por qué no utiliza el método 'SPUtility.SearchWindowsPrincipals'? – Stefan