1

c# で記述された ASP.NET 4.0 アプリケーションがあります。クレーム ベース認証を使用する SP2010 Foundation アプリケーションもあります。

ユーザーには、SharePoint アプリケーション全体が表示されるわけではありません。ライブラリ ビューのみが Iframe に埋め込まれ、シングル サインオンが実装されているため、ユーザーがアプリケーションにログインすると、同時に SP にもログインされます。

特定のユーザーのすべてのアラートを取得することは可能ですか?

例えば:

Jim が私のアプリケーションにログインすると、次のように表示されます。ドキュメント B に新しい変更があります。

したがって、基本的に電子メールを送信する代わりに、SP DOM を使用して、特定のユーザーの保留中のすべての更新を取得したいと考えています。

これに似たもの:

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

これにより、特定のユーザーが割り当てられているというアラートが表示されると思います。しかし、アラートが割り当てられているアイテムに対してユーザーが新しいアラートを持っている場合、SharePoint は保存しますか?

4

1 に答える 1

1

「ユーザーが新しいアラートを受け取った場合、sharepoint は保存されますか」と言うとき、メール自体を指していますか? SPAlert と SPAlertCollection は、リスト アイテムを監視し、電子メールの送信をトリガーする実際のオブジェクトです。電子メール自体はアラート オブジェクトではありません (混乱する理由は完全に理解していますが)。私の知る限り、電子メールを監視する唯一の方法は、メール サーバーを介して行うことです。SharePoint には、それを追跡する簡単な方法がありません。

私があなたの質問を正しく理解している場合、ユーザーに電子メールを送信するのではなく、アプリケーションを使用して、ユーザーが持っているアラート通知を表示したいですか? そのようなことは、アラート電子メールを中間アカウントにルーティングし、アプリケーションでそれらの電子メールを読み取り/フィルタリング/表示することで実現できます。これにより、電子メールにルールを設定して、それらを整理し、独自のカスタマイズされた通知を送信することもできます (SharePoint では、電子メール通知テンプレートのカスタマイズが非常に困難になります)。

于 2013-02-25T14:34:09.033 に答える