Laden...

EWS - Freigegebener Kontakt Ordner

Erstellt von trib vor 9 Jahren Letzter Beitrag vor 7 Jahren 2.671 Views
T
trib Themenstarter:in
708 Beiträge seit 2008
vor 9 Jahren
EWS - Freigegebener Kontakt Ordner

Hallo zusammen,

ich versuche gerade per Exchange Web Services auf einen Kontaktordner zuzugreifen.
Die Herausforderung ist jedoch, dass der Ordner von jemand anderem verwaltet wird.

Person A legt einen Ordner in seinen Kontakten an:
Rechte Maustaste -> Freigeben -> Ordnerberechtigungen -> Reiter Berechtigungen -> Person B bekommt die Freigabe & Rolle "Besitzer"

Nun nochmal per rechter Maustaste:
Freigeben -> Kontakte freigeben -> Email öffnet sich, Haken setzen bei "Empfänger können Elemente im Ordner Typ 'Kontaktordner' hinzufügen, bearbeiten und löschen".

Person B sieht den Ordner nun unter:

  • Freigegebene Kontakte
    • Person A - Ordnername

Nun kommt EWS mit ins Spiel.
Zuerst habe ich versucht unter WellKnownFolderName.Contacts alle Ordner auszugeben. Dort ist er aber nicht enthalten. Gesucht und folgendes Beispiel gefunden:
https://social.msdn.microsoft.com/Forums/exchange/en-US/bbff797d-21df-4bf9-8796-e7b81d818f93/cews-retrieve-all-shared-contacts-available-from-user?forum=exchangesvrdevelopment

Gebe ich dort nun Person B (also mich) als MailboxNamen an, so findet er den Ordner "Common Views" und anschließend 0 Einträge mit dem Suchfilter "Shared Contacts".
Gebe ich Person A dort ein, findet er nicht mal den Ordner "Common View".

Hat jemand sowas schonmal versucht? Mein Outlook zeigt mir die Kontakte an, auch kann ich dort welche hinzufügen oder ändern.
Die Code-Fragmente schauen alle ähnlich bis gleich aus, die man im Internet so findet.
Auch war es mir bisher nicht möglich auf die Freigegebenen Kalender zuzugreifen 😦

Bin über jeden Tipp dankbar!

1.820 Beiträge seit 2005
vor 7 Jahren

Hallo,

es scheint dass man explizit angeben muss, von welchem Account die Freigaben abgefragt werden sollen:

Im folgenden Beispiel rufe ich den freigegebenen Ordner "Meine Kontakte" des Accounts mit der E-Mail "Name@Domain.de" ab:


FolderId rfRootFolderid = new FolderId(WellKnownFolderName.Root, "Name@Domain.de");
FolderView fvFolderView = new FolderView(1000);
SearchFilter sfSearchFilter = new SearchFilter.IsEqualTo(FolderSchema.DisplayName, "Meine Kontakte");
FindFoldersResults ffoldres = service.FindFolders(rfRootFolderid, sfSearchFilter, fvFolderView);

Damit komme ich zumindest an die Kontakte. Hier muss allerdings beachtet werden, dass es sich beim gefundenen Ordner nicht zwingend um einen "ContactFolder" handelt, sondern meistens einen "SearchFolder".

Ich habe bisher leider noch nicht rausgefunden, wie man nach den freigebenden Accounts suchen kann.

Nobody is perfect. I'm sad, i'm not nobody 🙁

T
trib Themenstarter:in
708 Beiträge seit 2008
vor 7 Jahren

Ups, da habe ich doch glatt vergessen des Rätsels Lösung zu posten. Schande über mein Haupt!

Es ist notwendig den Root-Folder für die Kontakte freizugeben. Also Kontakte -> Eigenschaften -> Berechtigungen -> "Ordner sichtbar".
Das ermöglicht lediglich diesen Ordner zu sehen, keinesfalls aber die darin liegenden Kontakte!
Nun kann ich das Unterverzeichnis auswählen und entsprechend mit Lese- und/oder Schreibberechtigungen ausstatten.
Der Zugriff erfolgt nun mit meiner Benutzeranmeldung aber mit dem Mailbox-Namen des auszulesenden Kontos.

Es muss nur die Berechtigung erteilt, nicht aber die Freigabe versendet werden.

@tom-essen: Leider benötigt man dann eine Liste von zu durchsuchenden Email-Konten. Eine Suche ist imho nicht möglich.