それは(メールサーバの管理者が指定したメールアカウントにスーパーユーザ権限を割り当てるには、パワーシェルコマンドを実行する必要があります)偽装と呼ばれています。ここで
はまたここにリンクhttps://msdn.microsoft.com/en-us/library/office/dd633680(v=exchg.80).aspx
である私は数百人のユーザーのために偽装を使用する方法の実例です。 必要なのは、アクセストークンではなくハッシュセットまたは辞書にユーザー名を格納することです(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
あなたはすべてのユーザーの初期化辞書を持っていると仮定すると、あなたはそれらの一つ一つにexchangeserviceを割り当て、新しい辞書
For Each strUserName As String In _UserIdDictionary.Keys
_ExchangeServicesMainThread.Add(strUserName, InitializeService(strUserName))
Next
感謝して、このユーザ名/ exchangeserviceを保存するように、あなたの辞書かかわらループあなたの答えはあなたです!悪いことに、彼らにはアクセス権がありません。私は管理者としてこのエクスチェンジにアクセスすることはできませんので、これは私の選択肢にはなりません。 Stilそれはaccesstokenがないことを知るのに役立ちます。 – Arnout