Exchange Webサービス2010での作業は、特に.NET以外では少しばかげているため、他の言語がExchangeと対話するためのパススルーとして機能するSOAPWebサービスに一部の機能をラップする必要があります。環境。
[その他] <-(SOAP)-> ASP.NET ASMX Webサービス<-(EWSマネージAPI)-> Exchange2010
ユーザーがすべてのアクションでパスワードを入力する必要がないように、偽装アカウントを使用しているため、必要なのは変更するアカウントのアカウント名だけです。
これはすべてかなりうまく機能します。なりすましアカウントの1つを使用します。偽装アカウントは、監査を簡素化する目的で、APIキーと1:1の関係にあります。設定した他の偽装アカウントは、名前とパスワードが異なることを除いて、作業アカウントの正確なコピーのように見えますが、EWSマネージAPIからそれらを使用しようとすると、次のエラーが発生します。
要求が失敗しました。リモートサーバーがエラーを返しました:(401)許可されていません。
スタックトレース:
at Microsoft.Exchange.WebServices.Data.ServiceRequestBase.InternalExecute()
at Microsoft.Exchange.WebServices.Data.MultiResponseServiceRequest`1.Execute()
at Microsoft.Exchange.WebServices.Data.ExchangeService.BindToFolder(FolderId folderId, PropertySet propertySet)
at Microsoft.Exchange.WebServices.Data.ExchangeService.BindToFolder[TFolder](FolderId folderId, PropertySet propertySet)
at Microsoft.Exchange.WebServices.Data.Folder.Bind(ExchangeService service, FolderId id, PropertySet propertySet)
at Microsoft.Exchange.WebServices.Data.Folder.Bind(ExchangeService service, WellKnownFolderName name)
at WhartonEWS.GetEmailUnreadCount(String apiKey, String emlUserAddress) in c:\workspace\dotnet\EWS\v1\App_Code\EWS.cs:line 357
私が言ったように、これと同じコードは、特定の他の偽装アカウントに対応するAPIキーを使用する場合に正常に機能します。また、機能しないapiキーを機能する偽装アカウントを使用するように設定すると、apiキーが機能し始めます。
1つのアカウントは機能し、別のアカウントは機能しないため、問題はWebサービスコードにあるのではなく、偽装アカウントのセットアップまたはWebサーバーとExchangeサーバーの間に存在するある種の構成にあると解釈します。ただし、サーバー間の構成の場合は、すべてのアカウントが機能しなくなると思います。
同時に、私たちは非常に有能な取引所管理者であると私が信じているものを持っており、少なくとも2人はなりすましアカウントを調べて、問題ではないと結論付けています。
ここからどこへ行けますか?考えられる解決策の1つは、すべてのリクエストを実際のなりすましアカウントに転送し、監査の影響に対処することだと思いますが、それを回避できるのであれば、そうしたいと思います。何か案は?