Events 如何获得有关SharePoint组更改的通知。

Events 如何获得有关SharePoint组更改的通知。,events,sharepoint,event-handling,moss,Events,Sharepoint,Event Handling,Moss,我正在寻找一种方法来获得有关SharePoint组的任何更改的通知。首先,我想我可以通过将事件处理程序附加到某种组列表来实现这一点。但不幸的是,没有这样的列表代表SharePoint组 我的第二次尝试是将事件处理程序绑定到内容类型SharePointGroup,但这也不起作用 那么,是否有其他选项可以获得有关SharePoint组事件的通知 编辑: 谢谢你的回复 我忘了提到我已经在谷歌上搜索并阅读了用户信息列表。对不起 首先,我找到了一个论坛条目,他们将相对URL发布到用户信息列表(_catal

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

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

那么,是否有其他选项可以获得有关SharePoint组事件的通知

编辑:

谢谢你的回复

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

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

我在几篇博客和论坛帖子中发现的另一个信息是,附加到用户信息列表的事件处理程序不会在事件上启动。我不得不承认,在读过很多次之后,它都不起作用,甚至在MSDN()上,我自己也没有尝试过

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


关于如何了解SharePoint组的更改,还有其他建议吗?

没有SharePoint组的此类列表是什么意思?用户和SharePoint组都位于用户信息列表中。您可以在那里附加事件接收器并对项目进行筛选。例如,您可以筛选SharePoint组的内容类型id,即0x010b

此外,还可以将事件接收器附加到SharePoint组。什么不起作用


.b

添加或从组中删除没有一个事件处理程序,这真是令人恼火,这是我在使用谷歌时发现的最好的解决方法!就是打开审计

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

            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
                    }


             }
wssQuery=newspauditquery(站点);
添加限制(SPAuditEventType.SecGroupMemberAdd);
添加限制(SPAuditEventType.SecGroupMemberDel);
SetRangeStart(startTime.AddMinutes(-16));
auditCol=site.Audit.GetEntries(wssqery);
foreach(auditCol中的spaudity条目)
{
xml.LoadXml(“+entry.EventData+”);
int userId=Int32.Parse(xml.SelectSingleNode(“/event/user”).InnerText);
int groupId=Int32.Parse(xml.SelectSingleNode(“/event/groupId”).InnerText);
if(entry.Event==SPAuditEventType.SecGroupMemberAdd)
{
//做事
}
if(entry.Event==SPAuditEventType.SecGroupMemberDel)
{
//做事
}
}
它确实会导致添加到组中的成员与事件触发之间的严重延迟

我在审计中也找不到事件处理程序,因此唯一的选项似乎是循环执行

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

不幸的是,“在UserInformation列表类型上未引发列表事件。” 见: 或者这里的讨论:

但是,对于SP 2013,有一个解决方案:

嗨,我错问了同一个问题