Jeśli tworzymy WebPart na naszą witrynę SharePoint i chcemy sprawdzić do jakich grup SharePoint należy zalogowany użytkownik to intuicyjnie szukamy tej informacji w cechach przypisanych do użytkownika a dokładnie:
SPUser uzytkownik.Groups
Jest to dobry tok myślenia tylko w przypadku, gdy użytkownicy przypisywani są do grupy SharePoint w postaci pojedynczych użytkowników Active Directory a nie Grup AD.
W tym drugim przypadku musimy użyć SPUserToken i SPGroup.ContainsCurrentUser.
Przykład:
SPSite site = new SPSite(“http://sharepoint:100/”);
SPWeb web = site.OpenWeb();
Label label = new Label();
this.Controls.Add(label);
SPUserToken userToken = site.UserToken;
using (SPSite contextSiteColl = new SPSite(“http://sharepoint:100/”, userToken))
{
using (SPWeb contextSite = contextSiteColl.OpenWeb())
{
label.Text += ” Site:” + contextSite.Name;
foreach (SPGroup grupa in contextSite.Groups)
{
if (grupa.ContainsCurrentUser)
{
label.Text += ” Należy do grupy:” + grupa.Name;
}
}
}
}