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
risposta
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);
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
@ s654m - grazie per l'avviso, l'ho incorporato nella mia risposta. – chiccodoro
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
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
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/
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.
Utilizzando i servizi di SharePoint API o web? –
La domanda è già stata fatta qui >> http://stackoverflow.com/questions/1063931/sharepoint-check-if-a-user-is-member-of-a-group – Flo