1

カレンダーと連絡先を別のシステムに同期するためのアプリケーションを開発しようとしています。アプリケーションは C# で記述されていますが、各ユーザーの資格情報を知らずに、すべてのユーザーのカレンダーと連絡先を取得する方法がわかりません。アプリケーションは情報をポーリングするべきではありませんが、イベントのようにアプリケーションに送信する必要があります。

私はすでに MS サイトを検索し、「Exchange 2013 101 Code Samples」をダウンロードして、別のユーザーに電子メールを送信するスクリプトを正常に作成しましたが、認証はユーザー資格情報でのみ機能しました。

特定のユーザー リストのすべてのカレンダーと連絡先を読み取ることができる「マスター」ユーザーを作成することはできますか? ExchangeServer はアプリケーションを呼び出して情報を送信できますか (SOAP などを使用)、またはポーリングする必要がありますか?


アップデート:

すべてに対して完全な権限を持つユーザーを作成しましたが、「マスター」ユーザーのカレンダーが空であるため、サーバーからデータを読み取る方法がわかりません。OWA にアクセスして、誰かの予定表を偽装して見ると、予定が表示されます。

アクセス許可のコード:

Get-Mailboxdatabase | Add-ADPermission -AccessRights ExtendedRight -ExtendedRights Receive-As, Send-As -User "<SuperAccount>"

そして、これはカレンダーを共有しています:

Add-MailboxFolderPermission –Identity <MailboxFolderId>:\Calendar -AccessRight ReadItems -User <SuperAccount>

マスターユーザーでユーザーのカレンダーを取得するにはどうすればよいですか?

4

2 に答える 2

1

私たちが使用するアプローチは、すべてのユーザーが自分のカレンダーを完全な編集権限を持つ「マスター」ユーザーと共有する必要があるというものです。このユーザーは、サーバーのドメインで作成する必要があります。このコードは、マスター ユーザーとして Exchange にログインすると、すべてのカレンダーにアクセスできるようになります。

私が経験したことのない別のアプローチはImpersonationです。Exchange では、他のユーザーとして行動できます。そのためには、Windows での偽装権限が必要です。

于 2013-07-05T08:27:15.993 に答える