2017-01-19 15 views
-1

すべてのExchange共有カレンダーからのアクセス許可をリストしたいと思います。 私は2つのExchange Onlineのアカウントを持っている: [email protected] [email protected]EWS - 共有カレンダーへのアクセス

さて、私は[email protected]から[email protected]にカレンダーを共有しています。

Exchange EWS APIを使用してカレンダーリストを取得すると、すべてのカレンダー(共有カレンダーを含む)が取得されますが、どのカレンダーを共有カレンダーにするかを知る方法はありません。

Iコード以下用途を有する:

プロパティセットpropSet =新しいプロパティセット(BasePropertySet.FirstClassProperties、FolderSchema.Permissions)を、 フォルダfolder = Folder.Bind(service、folderid、propSet);

if (folder.Permissions.Count != 0) 
    { 
     for (int t = 0; t < folder.Permissions.Count; t++) 
     { 
      if (folder.Permissions[t].UserId.DisplayName != null || folder.Permissions[t].UserId.PrimarySmtpAddress != null) 
      { 

      } 
     } 
    } 

しかし、この戻りuserId.DisplayNameとUserId.PrimarySmtpAddressは毎回nullに。

どのカレンダーが共有されているかをどのように知ることができますか?

答えて

0

私は答えを得ました。以下のようなカレンダーコールがあります。 私は他のユーザーカレンダー(共有カレンダー)にアクセスする必要がある場合は、私は自分のメールIDを渡します(私の資格情報メール)。他のユーザーの電子メールアドレスをここに渡します。service.FindFolders(new FolderId(WellKnownFolderName.Root、 "Other user email"))

サービスオブジェクトは自分の資格で作成され、他のユーザーの電子メールを受け取ります。すべてのカレンダー。

0

プロパティRequiredAttendeesOptionalAttendeesを使用して、共有カレンダーの電子メールアドレスを確認できます。いずれかのプロパティに共有カレンダーのメールアドレスが含まれている場合、それは共有カレンダーからのものです。

0

共有フォルダー用の関連トラバーサルを使用して各フォルダーのフォルダー関連アイテムコレクションをチェックする場合は、そのコレクション内にIPM.Sharing.SyncStateタイプのアイテムが存在する必要があります。

 ItemView iv = new ItemView(1000); 
     iv.Traversal = ItemTraversal.Associated; 
     SearchFilter sf = new SearchFilter.IsEqualTo(ItemSchema.ItemClass, "IPM.Sharing.SyncState"); 
     FindItemsResults<Item> fiItems = Folder.FindItems(sf, iv); 
+0

共有カレンダーが表示されません。 –

関連する問題