当前位置:  开发笔记 > 编程语言 > 正文

在sharepoint中按组获取用户

如何解决《在sharepoint中按组获取用户》经验,为你挑选了2个好方法。

任何人都可以告诉我如何使用sharepoint获取特定组内的用户?

所以我有一个包含用户和/或组的列表.我想检索该列表中的所有用户.有没有办法区分列表项是组还是用户.如果它是一个组,我需要获得该组内的所有用户.

即时通讯使用c#,我试图通过使它成为一个控制台应用程序来做.

我是sharepoint的新手,我真的在这里跳进了游泳池的深处,任何帮助都将受到高度赞赏.

干杯..



1> Pedrin..:

您需要知道的第一件事是,当您有一个包含用户/组字段的列表时,您必须知道它的类型.如果项目值中包含一个用户或组,则字段类型为SPFieldUserValue.但是,如果该字段具有多个用户/组选择,则字段类型为SPFieldUserValueCollection.
我假设您的字段允许单个用户/组选择,并且您已经拥有以下对象:

SPSite site;
SPWeb web;
SPListItem item;

现在,我们将检查用户/组的字段值并检索用户列表,与其类型无关(字段的名称为"Users").

SPFieldUserValue usersField = new SPFieldUserValue(mainWeb, item["Users"].ToString());
bool isUser = SPUtility.IsLoginValid(site, usersField.User.LoginName);
List users = new List();

if (isUser)
{
    // add a single user to the list
    users.Add(usersField.User);
}
else
{
    SPGroup group = web.Groups.GetByID(usersField.LookupId);

    foreach (SPUser user in group.Users)
    {
        // add all the group users to the list
        users.Add(user.User);
    }
}

我希望它对你有所帮助.

Tks,
PedroJoséBatista



2> 小智..:

注意:SPUser对象也可以是AD组(也就是说,"DOMAIN\Domain Users"可能存在SPUser对象...这就是SPUser对象也包含属性IsDomainGroup的原因.

从这些信息中,您可以使用SPPrincipalInfo对象开始遍历AD组...但是它并不总是令人愉快.

值得注意的一件事是,SPGroup对象包含可以遍历AD组的ContainsCurrentUser属性......但是,假设您有一个可以使用的SPGroup对象.

请享用.
斯科特

推荐阅读
个性2402852463
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有