如何从Exchange Server 2013验证WebApp?
问题描述:
我正在构建一个应用程序,该应用程序使用Exchange API从本地Exchange服务器中提取用户的联系人。目前的做法是要求用户输入用户名为&的密码。如何从Exchange Server 2013验证WebApp?
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客户端登录?
答
这取决于MS Exchange环境。如果Kerberos是在MS Exchange环境中的enabled您可能会使用它(但它取决于您的应用程序如何访问EWS)。微软在这里有一个类似的文章: EWS from a Web Application using Windows Authentication and Impersonation
请注意,Kerberos没有启用默认情况下,并在大多数MS Exchange环境NTLM就位。另请注意,Kerberos只能通过域上下文运行。这意味着,如果运行Outlook(和您的软件)的计算机未加入活动目录域,则Kerberos不起作用(另请参阅here)。但是你可能希望检查你的代码,如果Kerberos可以使用它,如果没有,那么你可以要求用户输入密码(协商认证;你可能希望检查这个here)。