2009-09-04 2 views
5

Как я могу узнать программно, если текущий пользователь принадлежит к какой-либо группе на веб-сайте sharepoint?
Мне это нужно, потому что я хотел бы показать другой контент для пользователей, принадлежащих к одной группе.Sharepoint: узнать, принадлежит ли текущий пользователь указанной группе

+0

Использование SharePoint API или веб-сервисы? –

+1

Вопрос уже задан здесь >> http://stackoverflow.com/questions/1063931/sharepoint-check-if-a-user-is-member-of-a-group – Flo

ответ

11

Я наткнулся на ваш пост, потому что у меня есть (ИМХО) тот же вопрос, но ответы кажутся как-то не соответствующими этому. Так что я пошел на поиски и нашел 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); 

По состоянию на 2013 год, в соответствии с комментарием s654m, в подписи, кажется, изменились:

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

Это, похоже, не работает в веб-частях 2013 года. .. это однако делает: SPWeb сайт = SPContext.Current.Web; SPGroup managerGroup = site.Groups ["SP_Project_Manager"]; bool isManager = site.IsCurrentUserMemberOfGroup (managerGroup.ID); – s654m

+0

@ s654m - спасибо за внимание, я включил его в свой ответ. – chiccodoro

+0

Сумасшедшая вещь, моя учетная запись является правильной и принадлежит моей группе admin, но логическое значение, возвращаемое 'site.IsCurrentUserMemberOfGroup (7)' всегда false. Таким образом, это хороший идентификатор, и я отобразил текущего пользователя, он тоже хороший. Любой намек? – Alex

3

Возможно, это code sample pos t в форумах ASP.NET помогает.

метод можно использовать

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

удачи,
Хенрик

0

Один из способов приблизиться к такого рода вопросам, чтобы найти вдохновение в Codeplex. Качество кода, которое люди выпустили, обычно очень хорошее.

Я уверен, что вы можете найти решение здесь: http://accesschecker.codeplex.com/

0

Эй, я работаю на SharePoint

Если у вас есть MOSS установлена, вы могли бы взглянуть на функциональность 'аудиторий, что позволяет вы нацеливаете разных людей без кода.

Смежные вопросы