gpt4 book ai didi

c# - 如何为 SharePoint 网站中的任何更改创建每日摘要警报

转载 作者:太空狗 更新时间:2023-10-29 22:56:20 31 4
gpt4 key购买 nike

我最近接到一个要求,要求某人收到有关 SharePoint 网站内任何更改的每日摘要警报;每个网站都有一个负责其网站内容的所有者。

我们目前的工作方式是为站点内的每个列表/库自动设置警报。

// Get the Lists on this Site
SPListCollection siteLists = currentSite.Lists;
foreach (SPList list in siteLists)
{
if (!list.ToString().Equals("Master Page Gallery"))
{
if (list.ReadSecurity == 1) // user has read access to all items
{
// Create an Alert for this List
Guid alertID = currentUser.Alerts.Add(list, SPEventType.All, SPAlertFrequency.Daily);

// Set any additional properties
SPAlert newAlert = currentUser.Alerts[alertID];
}
}
}

这会产生两个问题:

  1. 用户创建了很多不同的提醒。理想:只有一封包含每日摘要的电子邮件。
  2. 必须设置某种监视器来检查站点中的新列表或库,并自动为用户设置警报。

问:如何为站点中的所有更改创建每日摘要警报?

最佳答案

我相信您正在寻找的解决方案可以通过审计框架获得。审计在 SP 中非常强大,不幸的是很容易被输出淹没。

Audit 是 SPSite、SPWeb、SPList 和 SPItem 属性上可用的属性。

使用此属性调整特定的审计标志(使用 .Audit.AuditFlags 属性)以满足您的需求(具体取决于您如何定义“更改”,但几乎所有您能想到的都可用)。

有关 SPAudit object 的详细信息在 MSDN 上可用。

一旦您定义了要审核的内容/位置,您就必须将该信息返回给您的用户。

默认情况下,SP 会设置一些在网站集级别可用的不错的报告 ([网站集的 url]/_layouts/Reporting.aspx?Category=Auditing)。这些可能会满足您的需求。

您最初的解决方案提到了通过电子邮件向用户发出警报。鉴于大多数用户希望将他们的信息集中在电子邮件中(尽管他们的 MySite 是放置报告链接的好地方!)您将需要做更多的工作。

您可以使用 SPAuditQuery 和 SPAuditEntryCollection 对象通过对象模型提取所需的审计信息。同样,MSDN has some information关于如何使用这些对象。

我建议设置一个在一天结束时运行的自定义 SPJobDefinition,以通过电子邮件向用户发送其网站的审核报告。 Andrew Connell 对 how to setup a custom job 有很好的解释在他的博客上。

总结:

  • 启用对相关 SPWeb 的审核
  • 使用 SPAuditQuery 和 SPAuditEntryCollection 为每个 SPWeb 创建一个报告
  • 创建一个每晚运行的 SPJobDefinition,将报告通过电子邮件发送给每个 SPWeb 所有者

关于c# - 如何为 SharePoint 网站中的任何更改创建每日摘要警报,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/921509/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com