使用Outlook凭据验证Windows标识

时间:2016-11-22 23:01:41

标签: c# .net authentication single-sign-on windows-authentication

我有一个启用了Windows身份验证的Web应用程序。验证成功后,它将显示我的自定义登录页面以验证我的Outlook凭据并从Outlook中获取日历项(数据从WCF服务中提取)以显示在UI。我的问题是,网络域中每个用户的窗口和Outlook凭据都是相同的。有没有像单点登录那样的方式,而不是进行两次身份验证 - 使用Outlook凭证验证Windows身份,反之亦然?

1 个答案:

答案 0 :(得分:0)

您的Web应用程序将在IIS中的应用程序池中运行。应用程序池将在一个帐户下运行(主要是服务帐户)。因此,所有对Web服务的请求都将与此帐户一起发送。

如果要发送用户的Windows帐户,则需要使用委派或模拟,以便网站可以将用户凭据传递给Web服务。然后在Web服务上,您需要模拟用户访问他们的日历。

这不是一项简单的任务,如果你这样做,你需要与系统管理员交谈,设置一个可以冒充其他用户的帐户。您还需要在IIS上启用模拟。

根据您的设置,服务和网站是否位于同一台计算机或不同的计算机上,您可能需要使用模拟(一台计算机)或委派(超过1台电脑)。您可以在模拟和委派方面阅读更多here

您可能已经开始开发并且您正在访问自己的Outlook日历,这是有效的。但请记住,您可能正在自己的机器上运行所有内容。一旦部署它并且多个用户正在访问网站和Web服务,整个游戏就会发生变化。

<强>更新

如果您使用的是Office 365并且拥有Azure AD,则可以按照this教程进行操作。但就像我说的,如果你使用本教程的方法,这并不简单,需要工作事件。