2012-04-19 7 views
7

Ich habe eine Anwendung, die E-Mails von "Benutzer A" extrahiert, mit der E-Mail-Adresse [email protected] Ich verwende den folgenden Code, um dies zu tun:EWS Managed API: Suchen eines Posteingangs anders als das Hauptpostfach mit Windows Login verbunden

ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2010); 
service.UseDefaultCredentials = true; 
service.Url = new Uri(ServerName); 

FindItemsResults<Item> findResults = service.FindItems(WellKnownFolderName.Inbox, new ItemView(500)); 

Dies funktioniert einwandfrei, wenn Benutzer A angemeldet ist und die Anwendung ausführt.

Nehmen wir jedoch an, Benutzer B habe Zugriff auf den Posteingang von Benutzer A und möchte die gleiche Anwendung ausführen, um Dateien aus dem Posteingang von Benutzer A zu extrahieren. Wie würde ich den obigen Code ändern, um den Posteingang des E-Mail-Kontos anzugeben?

Ich weiß, dass ich die Login-Daten von Benutzer A beim Abrufen der Anmeldeinformationen fest codieren könnte, aber im Idealfall würde ich hart codierte Benutzernamen vermeiden, sondern stattdessen die Anmeldeinformationen des Benutzers verwenden, der die Anwendung ausführt.

Dies kann nur mein Mangel an Verständnis sein, aber ich bin relativ neu zu. NET und sehr neu zu EWS. Irgendwelche Hinweise würden sehr geschätzt werden!

Dank

Antwort

15

Delegation ist das, was ich brauchte:

FolderId InboxId = new FolderId(WellKnownFolderName.Inbox, "[email protected]"); 
FindItemsResults<Item> findResults = service.FindItems(InboxId, new ItemView(500)); 
Verwandte Themen