質問

エクスチェンジWebサービスでデリゲートを使用している人はいますか? 1人のユーザーがExchangeで他のユーザーのカレンダーを制御できるようにしたいと思います。私はこの問題を少し注意が必要だと感じており、他の人がどのようにそれを適切に機能させることができるかを知りたいと思います。

役に立ちましたか?

解決

ここで始めたばかりですが、デリゲートアカウントを介してリソースカレンダーにアクセスできました。

デリゲートアカウントに関するこの記事の推奨事項を使用したリソースアカウント。 (リソースアカウントはADで無効になっているため注意が必要です。リソースアカウントにアクセスするには、デリゲートアカウントを使用する必要があります)

サーバーでデリゲートアカウントをセットアップした後、デリゲートアカウントの資格情報を使用してExchangeServerBindingをセットアップします。

ExchangeServiceBinding binding = new ExchangeServiceBinding();
binding.Url = @"https://dc1.litwareinc.com/ews/exchange.asmx";
// Setup binding with username and password of the delegate account
binding.Credentials = 
    new NetworkCredential(delegateuserName, delegatepassword, "litwareinc.com");

テスト用にMicrosoftが準備した仮想サーバーイメージを使用しています

次に、メールボックスにアクセスするときに、FindItemTypeリクエストを設定し、アクセスするアカウントのsmtpアドレスを使用します。

// Prepare request
var findItemRequest = new FindItemType();
// Setup the mailbox using the smtp address of the account wanted
var mailbox = new EmailAddressType {EmailAddress = mailboxId};
findItemRequest.ParentFolderIds = 
    new[] {new DistinguishedFolderIdType {Mailbox = mailbox}};
((DistinguishedFolderIdType) findItemRequest.ParentFolderIds[0]).Id = 
    DistinguishedFolderIdNameType.calendar;
findItemRequest.Traversal = ItemQueryTraversalType.Shallow;

// Add ItemResponseShapeType and Calendarview to request here ...

// The create a FindItemResponseType using the binding and the request
var response = binding.FindItem(findItemRequest);

要するに:

  1. Exchangeサーバーで代理アクセスを持つアカウントを設定します。これは、owaまたはExchange Shellスクリプトを使用して実行できます
  2. ExchangeServiceBindingオブジェクトの代理アクセスでアカウントを使用する
  3. FindItemTypeを使用して、ターゲットアカウントsmtp-addresをEmailAddressTypeとして使用して、ターゲットアカウントにアクセスします

よろしく ジェスパー・ハウジ

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top