[英]Check if specified user belongs to specific group or not
我在SharePoint交換上發布了此問題,但沒有引起任何注意。 任何幫助將不勝感激。
我已經實現了一個網站,並添加了一個名為“ SG_Uploader
”的SharePoint組。
在該組中,我ONLY
一個名為“ AD_L6
”的Active Directory組,並且AD_L6
有許多用戶。
如果用戶來到站點並且我想檢查他是否可以上傳文檔,我將使用以下代碼,該代碼非常簡單:
SPWeb web = // ...
SPGroup group = web.SiteGroups["SG_Uploader"];
if (group.ContainsCurrentUser)
{
// allow user to upload
}
現在,我想做同樣的事情,不是針對當前用戶,而是針對擁有用戶名的特定用戶。 那樣的話我想寫一個像
SPWeb web = // ...
SPGroup group = web.SiteGroups["SG_Uploader"];
if (group.ContainsUser(username))
{
// allow user to upload
}
我不知道我能做到這一點。 請指教。
以下代碼供您參考。
var username = "user1";
var spGroupName = "SG_Uploader";
var adGroupName = "AD_L6";
using (SPSite spSite = new SPSite("http://sp2013/sites/team/"))
{
using (SPWeb spWeb = spSite.OpenWeb())
{
SPUser user = spWeb.EnsureUser(adGroupName);
if (user.Groups.Cast<SPGroup>().Any(g => g.Name.Equals(spGroupName)))
{
var principalContext = new PrincipalContext(ContextType.Domain);
var group = GroupPrincipal.FindByIdentity(principalContext, adGroupName);
var isGroupMember = group.Members.Any(x => x.Name == username);
if (isGroupMember)
{
Console.WriteLine("User " + username + " is a member of group " + spGroupName);
}
else
{
Console.WriteLine("User " + username + " is not a member of group "+spGroupName);
}
}
}
}
你可以做到的。
string userName = "PERSEUS\\dmitry.kaloshin";
string groupName = "Home Members";
using (SPSite spSite = new SPSite("http://perseus"))
{
using (SPWeb spWeb = spSite.OpenWeb())
{
SPUser user = spWeb.EnsureUser(userName);
if (user.Groups.Cast<SPGroup>().Any(g => g.Name.Equals(groupName)))
{
Console.WriteLine("User " + userName + " is a member of group " + groupName);
}
else
{
Console.WriteLine("User " + userName + " is NOT a member of group " + groupName);
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.