EWS管理APIを使用すると、他のユーザの予定を作成するには?
-
19-09-2019 - |
質問
EWSでは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経由で可能、この?
解決 3
私はこの記事からそれを考え出しました: http://msdn.microsoft.com/en-us/ライブラリ/ dd633680(EXCHG.80).aspxのの
あなたはservice.ImpersonatedUserId
属性を使用する必要があります。
他のヒント
Folder inboxFolder = Folder.Bind(service, new FolderId(WellKnownFolderName.Inbox, "user1@example.com"));
あまりにも動作します。 その後Appointment.SaveコールにinboxFolder.idを渡します。更新と削除は、これを必要としません。 最良の答えは、偽装を使用することですが、これは、サーバー管理者によって有効にすることが必要です。あなたは、このような力を振るうない場合は、この方法は、あなたが必要なものをやらせます。 注:アプリケーションを実行するユーザーが、対象アカウントの権限を持っている必要がありますか、これは(それが必要のように)失敗します。
ここで見つける: http://msdn.microsoft.com/en -us /ライブラリ/ gg274408(V = EXCHG.80).aspxのの
私は、これは回答されている知っているが、@アーミルさんのコメントへの答えに私はちょうど私が働いているプロジェクトのためにそれをやった、この使用してデリゲートを行うことができます。
@mattが彼の答えで示唆したように、この場合にはカレンダーとなり、他のユーザーのフォルダを指すように予定の方法を保存する修正することができます。
コードは以下のようになります。
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)));
助け希望