0

我使用Office.js'sgetCallbackTokenAsync加载令牌以传递给后端。

在后端,我EWS用来检索电子邮件数据。这是我执行身份验证的方式。

ExchangeService service = new ExchangeService();
service.Url = new Uri(ewsUrl); //retrieved from getCallbackTokenAsync
service.Credentials = new OAuthCredentials(ewsToken);// retrieved from getCallbackTokenAsync

它在交换在线环境中运行良好。但是,在本地交换服务器中进行测试时,我收到了此身份验证错误:

Error Message: The remote server returned an error: (401) Unauthorized.
Stack Trace:   at System.Net.HttpWebRequest.GetResponse() at Microsoft.Exchange.WebServices.Data.EwsHttpWebRequest.Microsoft.Exchange.WebServices.Data.IEwsHttpWebRequest.GetResponse() at Microsoft.Exchange.WebServices.Data.ServiceRequestBase.GetEwsHttpWebResponse(IEwsHttpWebRequest request)

然后我发现这个文档说 Oauth2 身份验证仅用于在线交换。我想我需要使用这个 NTLM(仅限本地 Exchange)。

EWS我使用而不是Graph使用它的主要原因Rest是它更自然地支持本地服务器。那么我应该在这里更改身份验证吗?我当然不想向用户询问用户名和密码。

4

0 回答 0