Hoy vamos con audiencias. Voy a poner un ejemplo de una función para crear una Audiencia (Audience) desde código. Necesitamos conocer, el nombre de la audiencia, una descripción, el Usuario Owner y el Path del Grupo (Ej: CN=MiGrupo,OU=Intranet,DC=MiDominio). En este caso, hemos escogido una regla concreta, pero se pueden añadir otras.
Primero comprobamos si existe la audiencia, si no existe la creamos. En nuestro caso creamos una regla “Member Of”, es decir, ‘Usuarios que pertenezcan a’ y la agregamos al objeto Audience. Ejemplo:
Audience audience = null;
AudienceRuleComponent = audRule = new AudienceRuleComponent("DL", "Member Of", PATH_GRUPO);
audience.AudienceRules.Add(audRule);
Vamos a hacer una llamada a la función con datos ‘reales’. Voy a crear una audiencia a partir de un grupo de LDAP, y el nombre que le voy a dar a la audiencia será, au_NOMBREDELGRUPO; la descripción será el NOMBREDELGRUPO para una mejor localización; el Usuario Propietario de la audiencia será el que queramos(por regla general el Administrador del Sitio); y el path del grupo, como ya expliqué antes.
void CrearAudiencia("au_Intranet_Madrid", "Intranet_Madrid","DOMINIO\\usuario", "CN=Intranet_Madrid,OU=Intranet,DC=DOMINIO,DC=COM");
Función:
void CrearAudiencia(string NOMBRE_AUDIENCIA, string DESCRIPCION_AUDIENCIA, string USUARIO_OWNER, string PATH_GRUPO){
SPSecurity.RunWithElevatedPrivileges(delegate()
{
SPServiceContext context = SPServiceContext.GetContext(SPContext.Current.Site);
AudienceManager audManager = new AudienceManager(context);
AudienceCollection audCollection = audManager.Audiences;
Audience audience = null;
AudienceRuleComponent audRule = null;
if (!audCollection.AudienceExist(NOMBRE_AUDIENCIA))
{
audience = audCollection.Create(NOMBRE_AUDIENCIA, DESCRIPCION_AUDIENCIA, USUARIO_OWNER, AudienceGroupOperation.AUDIENCE_AND_OPERATION);
audience.AudienceRules = new ArrayList();
audRule = new AudienceRuleComponent("DL", "Member Of", PATH_GRUPO);
audience.AudienceRules.Add(audRule);
audience.Commit();
}
});
}
Como siempre, espero que sea de ayuda.