2012-08-03 49 views
1

我有一個代碼,我必須檢查用戶是否屬於某個組的一部分(可以說是「GroupA」)。SPuser查找組成員身份

我有存儲在Sharepoint變量SPUser中的用戶詳細信息。現在我需要檢查這個用戶是否屬於GroupA,然後採取一些行動。

我該如何做到這一點?

回答

1

來源:How to check if a user exists in a group

你可以用下面的擴展方法,像這樣:

public static bool InGroup(this SPUser User, string GroupName) 
{ 
    return User.Groups.Cast<SPGroup>().Any(g => g.Name.ToLower() == GroupName.ToLower()); 
} 

然後調用它像這樣:

bool inGroup = spuser.InGroup("GroupName"); 

如果要檢查當前用戶,然後另一種方法可以是這樣的:
來自:Check user already exist in specified SharePoint Group

SPWeb web = SPContext.Current.Web; 
SPGroupCollection webGroups = web.Groups; 

foreach (SPGroup group in webGroups) 
{ 
//Checking the group 
if (group.ContainsCurrentUser) 
{ 
    // perform action 
} 
else 
{ 
    //perform action 
} 
} 

對於更多參考:

Tell if user exists in SharePoint Group through web service

+0

這是一個偉大的方式!即使用戶是我在此處指定的組的一部分,我仍面臨1個小問題,但條件並未評估爲true。 我試過使用g.Name.Equals(「Group Name」,StringComparison.OrdinalIgnoreCase)。 – user1534235 2012-09-27 13:20:33