认证服务收到EWS未经授权的401

本文关键字:授权 EWS 认证服务 | 更新日期: 2023-09-27 18:29:11

我用C#编写了一个windows服务,可以使用EWS自动轮询exchange邮箱。

在我的开发机器上,它通过VPN连接到交换服务器网络,工作得很好。

在目标服务器上,EWS正在返回:

请求失败。远程服务器返回错误:(401)未经授权。(远程服务器返回错误:(401)未经授权。)

在同一台服务器上,我可以使用提供给服务的相同凭据通过浏览器连接到EWS URL。

凭据在app.config文件中提供,我已经三次检查了它们在目标服务器上是否与我的开发机器相同。

是什么原因造成的?

认证服务收到EWS未经授权的401

事实证明,问题是这个

_ews.Credentials = new NetworkCredential(Settings.Username, Settings.Password); // Username in the form "domainname'username"

应该是这个

_ews.Credentials = new NetworkCredential(Settings.Username, Settings.Password, Settings.Domain); // Domainname and username separate

出于某种原因,第一条线路在VPN上进行外部工作,但在域网络本身上不进行内部工作。