2009-09-04 31 views
5

Làm cách nào để tìm hiểu theo chương trình nếu người dùng hiện tại thuộc về một số nhóm trên trang web bổ trợ?
Tôi cần nó vì tôi muốn hiển thị nội dung khác nhau cho người dùng thuộc một nhóm.Sharepoint: tìm hiểu xem người dùng hiện tại có thuộc nhóm được chỉ định

+0

Sử dụng các dịch vụ SharePoint API hoặc web? –

+1

Câu hỏi đã được hỏi ở đây >> http://stackoverflow.com/questions/1063931/sharepoint-check-if-a-user-is-member-of-a-group – Flo

Trả lời

11

Tôi tình cờ gặp bài đăng của bạn vì tôi có (IMHO) cùng một câu hỏi, nhưng câu trả lời dường như không khớp với câu hỏi đó. Vì vậy, tôi tiếp tục tìm kiếm và tìm thấy 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); 

Tính đến năm 2013, theo bình luận của s654m, chữ ký dường như đã thay đổi:

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

Điều này dường như không hoạt động trong các phần web 2013. .. Tuy nhiên điều này tuy nhiên: SPWeb site = SPContext.Current.Web; SPGroup managerGroup = site.Groups ["SP_Project_Manager"]; bool isManager = site.IsCurrentUserMemberOfGroup (managerGroup.ID); – s654m

+0

@ s654m - cảm ơn bạn đã thông báo, tôi đã kết hợp nó trong câu trả lời của tôi. – chiccodoro

+0

Điều điên rồ, tài khoản của tôi là một trong những quyền và thuộc về nhóm quản trị của tôi, nhưng boolean trả về bởi 'site.IsCurrentUserMemberOfGroup (7)' luôn luôn là sai. Vì vậy, đó là id tốt và tôi hiển thị người dùng hiện tại, đó là một trong những tốt quá. Bất kỳ gợi ý nào? – Alex

3

có thể điều này code sample pos t trong Diễn đàn ASP.NET giúp.

Một phương pháp mà bạn có thể sử dụng

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

Chúc may mắn,
Henrik

0

Một cách tiếp cận là loại vấn đề này là để tìm cảm hứng tại CodePlex. Chất lượng của mã mà mọi người đã phát hành thường rất tốt.

Tôi chắc chắn rằng bạn có thể tìm ra giải pháp ở đây: http://accesschecker.codeplex.com/

0

Hey ở đó, tôi làm việc trên SharePoint

Nếu bạn có MOSS được cài đặt bạn có thể có một cái nhìn tại các chức năng 'khán giả', cho phép bạn nhắm mục tiêu những người khác nhau mà không cần mã.

Các vấn đề liên quan