Es Identitätswechsel genannt wird (der Mail-Server-Administrator muss ein Netz Shell-Befehl ausführt Superuser-Berechtigungen zu einem bestimmten Mail-Konto zuweisen).
Hier ist der Link https://msdn.microsoft.com/en-us/library/office/dd633680(v=exchg.80).aspx
Auch hier ist ein funktionierendes Beispiel dafür, wie ich Identitätswechsel verwenden für Hunderte von Benutzern. Sie müssen die Benutzernamen in einem Hashset oder einem Wörterbuch anstelle eines Zugriffstokens speichern (es gibt kein Zugriffstoken in EWS).
Private _ExchangeServicesMainThread As New Dictionary(Of String, ExchangeService)
Private _UserIdState As New Dictionary(Of String, Integer)
Private _Connections As New Dictionary(Of String, StreamingSubscriptionConnection)
Private _Subscriptions As New Dictionary(Of String, StreamingSubscription)
Private Function InitializeService(pUsername As String) As ExchangeService
Dim oExService As ExchangeService
Dim strEmailAddress As String = pUsername & config.MailDomain
Dim strAdminEmailAddress As String = config.ExchangeServerAdminUserName & config.MailDomain
oExService = New ExchangeService(config.ExchangeVersion)
oExService.UseDefaultCredentials = False
oExService.Url = New Uri(config.SecureHTTP & config.EmailServer & config.ExchangeManagedAPIEndpoint)
oExService.Credentials = New Net.NetworkCredential(config.ExchangeServerAdminUserName, config.ExchangeServerAdminPass, config.ActiveDirectoryDomain)
oExService.ImpersonatedUserId = New ImpersonatedUserId(ConnectingIdType.SmtpAddress, strEmailAddress)
Return oExService
End Function
Angenommen, Sie haben eine initialisierte Wörterbuch aller Benutzer dann die Schleife wenn Ihr Wörterbuch, so dass Sie einen Exchange zu jedem von ihnen zuweisen und speichern diesen Benutzername/Exchange in einem neuen Wörterbuch
For Each strUserName As String In _UserIdDictionary.Keys
_ExchangeServicesMainThread.Add(strUserName, InitializeService(strUserName))
Next
Thank du für deine Antwort! Zu schlecht haben sie keinen accesstoken. Ich kann keinen Zugang zum Exchange als Admin bekommen, also wird dies für mich keine Option sein. Trotzdem ist es hilfreich zu wissen, dass es keinen AccessStoken gibt. – Arnout