Ajout d’utilisateurs par programmation à un site de revendications dans SharePoint 2010

Article d’origine publié le samedi 14 janvier 2012

Un ami m’a présenté un problème assez intéressant l’autre jour. Il essayait d’ajouter un nouvel utilisateur par programmation à un site de revendications Windows et rencontrait toutes sortes de difficultés. Sa tentative initiale d’ajout de l’utilisateur avec domaine\nom d’utilisateur et la classe SPRoleAssignment ne fonctionnait pas comme il voulait. Il a alors essayé différentes manières pour fournir à la revendication la valeur codée du nom de l’utilisateur. Il a d’ailleurs réussi partiellement mais au prix d’effets secondaires étranges comme de voir le nom apparaître deux fois. Alors que je n’ai pas eu l’occasion d’examiner personnellement tous les problèmes qu’il a rencontrés, avec leurs variantes, ce qui a marché pour moi dès le premier essai a été d’utiliser la méthode EnsureUser sur SPWeb. Il est beaucoup plus simple de procéder ainsi que de bricoler pour obtenir le codage d’un nom de compte ; c’est également beaucoup plus simple car il vous suffit de passer le nom du compte au lieu des quatre paramètres que vous devez normalement utiliser pour ajouter un utilisateur. Veillez à ce que l’utilisateur se charge automatiquement du codage du nom et simplifie réellement son code.

Pour illustrer mon propos, voici un court exemple :

using (SPSite theSite = new SPSite("https://foo"))
{
using (SPWeb theWeb = theSite.OpenWeb())
{
   SPUser theUser = theWeb.EnsureUser("domaine\nom _utilisateur");
}
}

 

Ceci est une version localisée d’un article de blog. Vous trouverez la version originale de l’article sur Adding Users Programmatically to A Claims Site in SharePoint 2010