2013-01-17 85 views
0

我有一個用c#編寫的ASP.NET 4.0應用程序。我還有一個SP2010 Foundation應用程序使用基於聲明的身份驗證。在c#中爲SharePoint用戶獲取新警報

用戶沒有完全看到SharePoint應用程序。只有庫視圖嵌入到Iframe中,並且實現了單點登錄,這樣當用戶登錄到我的應用程序時,它們也會同時登錄到SP中。

是否有可能爲特定用戶獲取所有警報。

例如:

吉姆登錄到我的應用程序,看到以下內容: 文件A有一個新的修改 文件C已剛剛被上傳。 文件B有一個新的修改。

所以,基本上,而不是發送電子郵件我想使用SP DOM來抓取特定用戶的所有掛起的更新。

事情與此類似:

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

我假定這將給予一個特定的用戶已被分配到的警報。但是,如果用戶對已分配警報的項目具有新警報,SharePoint是否會存儲?

回答

0

當你說「如果用戶有新警報,共享點存儲是否存在」,那麼你是指郵件本身? SPAlert和SPAlertCollection是監控列表項目並觸發發送電子郵件的實際對象,電子郵件本身不是警報對象(儘管我完全理解爲什麼會令人困惑)。據我所知,監控電子郵件的唯一方法就是通過郵件服務器來完成,而SharePoint沒有一種簡單的跟蹤方式。

如果我正確理解你的問題,你想使用你的應用程序來顯示用戶有任何警報通知,而不是發送給用戶一封電子郵件?類似的東西可以通過將警報郵件路由到中間帳戶來完成,然後讓應用程序讀取/過濾/顯示這些電子郵件。這也使您能夠設置電子郵件規則來組織它們併發送自己的自定義通知(SharePoint使得定製電子郵件通知模板非常困難)。