2009-09-04 7 views
5

Comment puis-je savoir par programme si l'utilisateur actuel appartient à un groupe sur le site Web de sharepoint?
J'en ai besoin parce que je voudrais montrer un contenu différent pour les utilisateurs appartenant à un groupe.Sharepoint: savoir si l'utilisateur actuel appartient au groupe spécifié

+0

En utilisant les services de l'API SharePoint ou Web? –

+1

Question a déjà été demandé ici >> http://stackoverflow.com/questions/1063931/sharepoint-check-if-a-user-is-member-of-a-group – Flo

Répondre

11

Je suis tombé sur votre poste parce que j'ai (à mon humble avis) exactement la même question, mais les réponses semblent ne pas correspondre à cela. Je suis donc allé sur la recherche et a trouvé http://www.eggheadcafe.com/conversation.aspx?messageid=30460140&threadid=30420861:

SPWeb site = SPContext.Current.Web; 
SPGroup managerGroup = site.Groups["SP_Project_Manager"]; 
bool isManager = site.IsCurrentUserMemberOfGroup(managerGroup); 

À partir de 2013, selon le commentaire de s654m, la signature semble avoir changé:

bool isManager = site.IsCurrentUserMemberOfGroup(managerGroup.ID); 
+0

Cela ne semble pas fonctionner dans les parties Web 2013. .. ceci cependant: SPWeb site = SPContext.Current.Web; SPGroup managerGroup = site.Groups ["SP_Project_Manager"]; bool isManager = site.IsCurrentUserMemberOfGroup (gestionnaireGroup.ID); – s654m

+0

@ s654m - merci pour l'avis, je l'ai incorporé dans ma réponse. – chiccodoro

+0

Chose folle, mon compte est le bon et appartient à mon groupe admin, mais le booléen retourné par 'site.IsCurrentUserMemberOfGroup (7)' est toujours faux. Donc c'est le bon identifiant et j'ai affiché l'utilisateur actuel, c'est le bon aussi. Un indice? – Alex

3

peut-être ce code sample pos t dans les forums ASP.NET aide.

Une méthode que vous pouvez utiliser

/// <summary> 
/// This private method get users by selected SPGroup object. 
/// </summary> 
/// <param name="group">SPGroup object</param> 

private void UsersList(SPGroup group) 
{ 
      foreach(SPUser singleUser in group.Users) 
      { 
         foreach(SPRole singleRole in singleUser.Roles) 
         { 
            _usersListCollection.Add(new UserListCollection(
            singleUser.LoginName,singleRole.Name,group.ParentWeb.Title)); 
         } 
      } 
} 

Bonne chance,
Henrik

0

Une façon d'aborder ce genre de problèmes est de trouver l'inspiration à Codeplex. La qualité du code que les gens ont publié est généralement très bonne.

Je suis sûr que vous pouvez trouver la solution ici: http://accesschecker.codeplex.com/

0

Salut, je travaille sur SharePoint

Si vous avez MOSS installé, vous pouvez jeter un oeil à la fonctionnalité « public », qui permet vous de cibler différentes personnes sans code.

Questions connexes