12

EWS Managed APIでは、特定のユーザーの予定を簡単に作成できます。

ExchangeService service = new ExchangeService();
service.Credentials = new NetworkCredentials ( "administrator", "password", "domain" );
service.AutodiscoverUrl(emailAddress);

Appointment appointment = new Appointment(service);
appointment.Subject = "Testing";
appointment.Start = DateTime.Now;
appointment.End = appointment.Start.AddHours(1);
appointment.Save();

これにより、管理者の予定が作成されます。ただし、実際に別のユーザーの予定を作成したいとします(そのユーザーを私の予定の出席者として追加しないでください)。これはEWSマネージAPIを介して可能ですか?

4

3 に答える 3

9
Folder inboxFolder = Folder.Bind(service, new FolderId(WellKnownFolderName.Inbox, "user1@example.com"));

も動作します。次に、inboxFolder.idをAppointment.Save呼び出しに渡します。更新と削除にはこれは必要ありません。最善の答えは、偽装を使用することですが、これにはサーバー管理者が有効にする必要があります。あなたがそのような力を行使しないならば、この方法はあなたがあなたが必要とすることをすることを可能にするでしょう。注:アプリケーションを実行しているユーザーは、ターゲットアカウントに対するアクセス許可を持っている必要があります。そうでない場合、これは失敗します(必要に応じて)。

ここにあります:http://msdn.microsoft.com/en-us/library/gg274408 (v = EXCHG.80).aspx

于 2011-10-18T02:39:22.707 に答える
8

私はこれが答えられたことを知っていますが、@ Aamirのコメントに答えて、私が取り組んでいるプロジェクトのために行ったばかりのデリゲートを使用してこれを行うことができます。

@mattが彼の回答で示唆したように、予定のsaveメソッドを修正して、他のユーザーフォルダー(この場合はCalendar)を指すようにすることができます。

コードは次のようになります

Appointment appointment = new Appointment(service);
appointment.Subject = "Testing";
appointment.Start = DateTime.Now;
appointment.End = appointment.Start.AddHours(1);
appointment.Save(new FolderId(WellKnownFolderName.Calendar, new Mailbox(_EmailAddress)));

お役に立てば幸い

于 2014-02-11T16:29:18.090 に答える
7

私はこの記事からそれを理解しました:http: //msdn.microsoft.com/en-us/library/dd633680 (EXCHG.80).aspx

service.ImpersonatedUserId属性を使用する必要があります。

于 2010-03-10T19:41:54.500 に答える