如何从Exchange Server 2013验证WebApp?

时间:2017-03-07 20:22:40

标签: .net exchange-server exchangewebservices outlook-web-app

我正在构建一个使用Exchange API从内部部署Exchange服务器获取用户联系人的应用程序。目前的方法是询问用户的用户名和用户名。密码。

var service = new ExchangeService(ExchangeVersion.Exchange2013)
    {
         Credentials = new WebCredentials(credentials.UserName, credentials.Password),
         TraceEnabled = false,
         Url = new Uri("https://mail.*****.com/EWS/Exchange.asmx")
    };

我想知道是否可以避免要求输入密码如果用户已经从MS Oulook客户端登录?

1 个答案:

答案 0 :(得分:0)

这取决于MS Exchange环境。如果MS Exchange环境中的Kerberosenabled,您可以使用它(但这取决于您的应用程序如何访问EWS)。微软在这里有类似的文章: EWS from a Web Application using Windows Authentication and Impersonation

请注意,默认情况下并未在大多数MS Exchange环境NTLM中启用Kerberos。还要注意,Kerberos仅通过域上下文工作。这意味着如果运行Outlook(和您的软件)的PC未加入活动目录域,则Kerberos不起作用(另请参阅here)。但您可能希望在您的代码中检查它,如果Kerberos可以使用它,如果没有,那么您可以要求用户输入密码(协商身份验证;您可能希望检查此here)。