在c#中为SharePoint用户获取新警报

时间:2013-01-17 17:27:16

标签: c# asp.net sharepoint-2010 sharepoint-alerts

我有一个用c#编写的ASP.NET 4.0应用程序。我还有一个使用基于声明的身份验证的SP2010 Foundation应用程序。

用户无法完全看到SharePoint应用程序。只有库视图嵌入到iframe中并且已经实现了单点登录,这样当用户登录到我的应用程序时,它们也会同时登录到SP。

是否可以获取特定用户的所有提醒。

例如:

Jim登录我的应用程序并看到以下内容: Doc A有一个新的修改 Doc C刚刚上传。 文件B有一个新的修改。

所以基本上不是发送电子邮件而是我想使用SP DOM来获取特定用户的所有待定更新。

类似的东西:

SPUser user = web.EnsureUser(@"domainName\userName");
SPAlertCollection alertColl = user.Alerts;
foreach (SPAlert alert in alertColl)
{
Console.WriteLine(alert.Title); 
}

我假设这会给出已分配特定用户的警报。但是,如果用户对已分配警报的项目有新警报,那么SharePoint是否会存储?

1 个答案:

答案 0 :(得分:0)

当您说“如果用户有新警报时,是否存在sharepoint存储”,您指的是电子邮件本身吗? SPAlert和SPAlertCollection是监视列表项并触发电子邮件发送的实际对象,电子邮件本身不是警报对象(尽管我完全理解为什么这会让人感到困惑)。据我所知,监控电子邮件的唯一方法是通过邮件服务器进行,​​SharePoint没有一种简单的方法来跟踪它。

如果我正确理解您的问题,您是否希望使用您的应用程序显示用户拥有的任何警报通知,而不是向用户发送电子邮件?这样的事情可以通过将警报电子邮件路由到中间帐户,然后让您的应用程序读取/过滤/显示这些电子邮件来实现。这也使您能够在可以组织它们的电子邮件上设置规则并发送您自己的自定义通知(SharePoint使自定义电子邮件通知模板变得非常困难)。

相关问题