Kit*_*nke 5 c# sharepoint alert sharepoint-2007 alerts
我最近要求某人收到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];
}
}
}
Run Code Online (Sandbox Code Playgroud)
这会产生两个问题:
问:如何为站点中的所有更改创建每日摘要警报?
我相信您正在寻找的解决方案可通过审计框架获得.审计在SP中非常强大,不幸的是它很容易被输出所淹没.
Audit是SPSite,SPWeb,SPList和SPItem属性上可用的属性.
使用此属性调整特定审计标志(使用.Audit.AuditFlags属性)以满足您的需求(具体取决于您如何定义"更改",但几乎任何您能想到的内容都可用).
有关SPAudit对象的详细信息,请访问MSDN.
一旦定义了要审核的内容/位置,就必须将这些信息反馈给用户.
默认情况下,SP会在网站集级别设置一些不错的报告([网站集的网址]/_ layouts/Reporting.aspx?类别=审核).这些可能会满足您的需求.
您的初始解决方案通过电子邮件为用户提供了警报 鉴于大多数用户希望将他们的信息集中在电子邮件中(尽管他们的MySite是放置报告链接的好地方!),您还需要做更多的工作.
您可以使用SPAuditQuery和SPAuditEntryCollection对象通过对象模型提取所需的审计信息.同样,MSDN有一些关于如何使用这些对象的信息.
我建议设置一个在一天结束时运行的自定义SPJobDefinition,以便向用户发送其站点的审核报告.Andrew Connell对如何在他的博客上设置自定义作业进行了很好的解释.
总结一下:
| 归档时间: |
|
| 查看次数: |
5567 次 |
| 最近记录: |