4

我实际上正在寻找一种方法来获取有关 SharePoint 组的任何更改的通知。首先,我可以通过将事件处理程序附加到某种组列表来实现这一点。但不幸的是,没有代表 SharePoint 组的此类列表。

我的第二次尝试是将事件处理程序绑定到内容类型 SharePointGroup ,但这也不起作用。

那么是否有任何其他选项可以获取有关 SharePoint 组上的事件的通知?

编辑:

感谢您到目前为止的回复。

我忘了提到我已经用谷歌搜索并阅读了用户信息列表。对不起。

首先,我找到了一个论坛条目,他们将相对 URL 发布到用户信息列表 (_catalogs/users/simple.aspx)。当我使用此链接查看列表时,它只包含用户而没有组。我不知道,但也许这个链接在列表中做了一些过滤。

我在几篇博客和论坛帖子中发现的其他信息是,附加到用户信息列表的事件处理程序不会在事件中触发。我不得不承认,在阅读了很多次之后,它甚至在 MSDN(http://msdn.microsoft.com/en-us/library/aa979520.aspx)上都不起作用,我没有自己尝试过.

将事件处理程序附加到内容类型的问题不是附加的事情,例如,当我更改组名或从组中删除用户时,处理程序根本没有被触发。我不知道为什么不调用处理程序我很确定我实现了正确的方法并将它们附加到正确的事件。

有关如何了解 SharePoint 组更改的任何其他建议?

4

3 回答 3

2

确实很烦人,添加或从组中删除没有事件处理程序,这是我使用 Google 发现的最佳解决方法!是打开审计。

然后定期循环审核以触发我的事件。

            wssQuery = new SPAuditQuery(site);
            wssQuery.AddEventRestriction(SPAuditEventType.SecGroupMemberAdd);
            wssQuery.AddEventRestriction(SPAuditEventType.SecGroupMemberDel);
            wssQuery.SetRangeStart(startTime.AddMinutes(-16));
            auditCol = site.Audit.GetEntries(wssQuery);




            foreach (SPAuditEntry entry in auditCol)
            {
                    xml.LoadXml("<event>" + entry.EventData + "</event>");

                    int userId = Int32.Parse(xml.SelectSingleNode("/event/user").InnerText);
                    int groupId = Int32.Parse(xml.SelectSingleNode("/event/groupid").InnerText);

                    if (entry.Event == SPAuditEventType.SecGroupMemberAdd)
                    {
                       // Do Stuff
                    }

                    if (entry.Event == SPAuditEventType.SecGroupMemberDel)
                    {
                        // Do Stuff
                    }


             }

它确实会导致成员被添加到组和事件触发之间的严重延迟!

我在审计中也找不到事件处理程序,所以唯一的选择似乎是循环遍历。

这对我来说很昂贵,因为我们有数百个网站集!

于 2010-05-10T17:10:51.163 回答
1

您是什么意思没有针对 SharePoint 组的此类列表?您拥有用户和 SharePoint 组所在的用户信息列表。您可以在此处附加事件接收器并过滤项目。例如,您可以筛选 SharePoint 组的内容类型 ID,即 0x010b。

此外,应该可以将事件接收器附加到 SharePoint 组。什么没用?

.b

于 2008-11-17T17:12:43.530 回答
0

不幸的是,“不会在 UserInformation 列表类型上引发列表事件。” 请参阅:http: //msdn.microsoft.com/en-us/library/aa979520.aspx 或此处的讨论:http: //social.msdn.microsoft.com/Forums/en-US/ea2e06fb-63e1-4096- 843c-413ddf33f24b/how-to-add-event-receivers-for-spgroup-in-sharepoint

但是,对于 SP 2013,有一个解决方案: http ://www.c-sharpcorner.com/UploadFile/anavijai/create-groupuseradded-event-receiver-in-sharepoint-2013/

于 2014-07-10T05:42:41.007 回答