SharePoint事件接收器和Sharepoint REST Api集成问题

时间:2016-06-14 03:59:34

标签: javascript c# sharepoint

我正在将多个用户添加到SharePoint列表中。

然后我需要从事件接收器中读取用户。

使用SharePoint工作正常,因为它传递了用户声明,例如:"-1;#i:0#.w|domain\\alex;#-1;#i:0#.w|domain\\jimmy"

其他API会传递用户ID,例如:"10;#;#11;#"这会破坏事件接收者。

我正在使用SPFieldUserValueCollection来解析输入,声明字符串工作正常,但REST ID已中断。

如何解析两种类型的有效用户组输入?

1 个答案:

答案 0 :(得分:0)

希望内置一些东西,因为没有人能回答我只是决定自己解决这个问题。

 public static void GetUsersFromIdsAndClaims(this SPFieldUserValueCollection collection, SPWeb web, string inputValue)
        {
            var values = Regex.Split(inputValue, ";#");
            for (var i = 0; i < values.Count(); i += 2)
            {
                var id = int.Parse(values[i]);
                var value = values[i + 1];
                var user = id == -1 ? web.EnsureUser(value) : web.SiteUsers.GetByID(id);

                collection.Add(new SPFieldUserValue(web, user.ID, user.Name));
            }
        }
    }