Проверьте, принадлежит ли указанный пользователь к определенной группе или нет

Я разместил этот вопрос на бирже SharePoint, но он не привлек никакого внимания. Любая помощь будет оценена.

Я реализовал сайт и добавил группу SharePoint под названием "SG_Uploader".

В этой группе я ONLY одна группа Active Directory называетсяAD_L6"и в 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
}

Я не мог понять, кто я могу сделать это. Пожалуйста, порекомендуйте.

2 ответа

Следующий код для вашей справки.

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

Посетите https://social.msdn.microsoft.com/Forums/office/en-US/65066c08-9924-4935-9bba-f715b75d3fac/how-to-check-if-user-exists-in-a-particular-sharepoint-group-or-not-programatically?forum=sharepointdevelopmentprevious

Другие вопросы по тегам