2009-09-04 13 views
5

Come è possibile trovare a livello di programmazione se l'utente corrente appartiene a un gruppo nel sito Web di sharepoint?
Ne ho bisogno perché mi piacerebbe mostrare un contenuto diverso per gli utenti appartenenti a un gruppo.Sharepoint: verificare se l'utente corrente appartiene al gruppo specificato

+0

Utilizzando i servizi di SharePoint API o web? –

+1

La domanda è già stata fatta qui >> http://stackoverflow.com/questions/1063931/sharepoint-check-if-a-user-is-member-of-a-group – Flo

risposta

11

Mi sono imbattuto nel post perché ho (IMHO) la stessa identica domanda, ma le risposte sembrano in qualche modo non corrispondenti. Così sono andato a cercare e ho trovato 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); 

A partire dal 2013, secondo il commento di s654m, la firma sembra essere cambiato:

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

Questo non sembra funzionare nel web part 2013. .. questo tuttavia: Sito SPWeb = SPContext.Current.Web; SPGroup managerGroup = site.Groups ["SP_Project_Manager"]; bool isManager = site.IsCurrentUserMemberOfGroup (managerGroup.ID); – s654m

+0

@ s654m - grazie per l'avviso, l'ho incorporato nella mia risposta. – chiccodoro

+0

Pazzesco, il mio account è quello giusto e appartiene al mio gruppo di amministratori, ma il valore booleano restituito da 'site.IsCurrentUserMemberOfGroup (7)' è sempre falso. Quindi è il buon id e ho visualizzato l'utente corrente, è anche quello buono. Qualche suggerimento? – Alex

3

forse questo code sample pos t nei forum ASP.NET aiuta.

un metodo che è possibile utilizzare

/// <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)); 
         } 
      } 
} 

Buona fortuna,
Henrik

0

Un modo per avvicinarsi a questo tipo di problemi è quello di trovare l'ispirazione a Codeplex. La qualità del codice che le persone hanno rilasciato è in genere molto buona.

Sono sicuro che si può trovare la soluzione qui: http://accesschecker.codeplex.com/

0

Hey there, Io lavoro su SharePoint

Se avete MOSS installato si potrebbe dare un'occhiata alla funzionalità di 'pubblico', che permette di indirizzare persone diverse senza codice.

Problemi correlati