我使用Office.js
的{{1}}加载令牌以传递到后端。
在后端,我使用getCallbackTokenAsync
来检索电子邮件数据。这是我执行身份验证的方式。
EWS
在交流在线环境中效果很好。但是,在本地交换服务器上进行测试时,出现此身份验证错误:
ExchangeService service = new ExchangeService();
service.Url = new Uri(ewsUrl); //retrieved from getCallbackTokenAsync
service.Credentials = new OAuthCredentials(ewsToken);// retrieved from getCallbackTokenAsync
然后我发现doc说Oauth2身份验证仅用于在线交换。我想我需要使用此NTLM(仅Exchange内部部署)。
我使用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)
而不是EWS
或Graph
的主要原因是它更自然地支持本地服务器。那我应该在这里更改身份验证吗?我当然不想向用户询问用户名和密码。