Reputation: 6683
I posted this question on SharePoint exchange but it did not get any attention. Any help will be appreciated.
I have implemented a site and have added a SharePoint group called "SG_Uploader
".
In this group, I ONLY
have one Active Directory group called "AD_L6
" and there are many users in AD_L6.
If a user comes to site and I want to check if he can upload a document, I use below code which is very simple:
SPWeb web = // ...
SPGroup group = web.SiteGroups["SG_Uploader"];
if (group.ContainsCurrentUser)
{
// allow user to upload
}
Now, I want to do the same thing, not for current user but for a specific user that I have his username. By that mean I want to write a code like
SPWeb web = // ...
SPGroup group = web.SiteGroups["SG_Uploader"];
if (group.ContainsUser(username))
{
// allow user to upload
}
I could not figure out who I can do that. Please advise.
Upvotes: 0
Views: 2144
Reputation: 4208
The following code for your reference.
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);
}
}
}
}
Upvotes: 2
Reputation: 146
You can do that.
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);
}
}
}
Upvotes: 0