在网络外提示凭据并在网络上使用Windows凭据的Web应用程序

本文关键字:网络 Windows 应用程序 Web 提示 | 更新日期: 2023-09-27 17:58:44

我正在实现IIS 7.5中托管的C#MVC 4应用程序,以取代公司内部网。要求是,当用户在其个人工作站上使用windows凭据登录时,不会提示他们登录(这不是可选的,客户对此很坚定,因为他们认为SharePoint就是这样工作的。虽然我无法确认),然而,当他们在移动设备上或在本地网络之外的个人计算机上时,他们将被提升其凭据。此外,在断开网络时,用户应该能够注销,并且应用程序应该在一段时间不活动后自动注销。所有有权访问该应用程序的用户都将拥有AD凭据。

我试图获得一个有效的windows身份验证解决方案,但据我所知,windows身份验证不适用于本地网络之外。即使我可以通过这个选项获得所需的身份验证结果,也无法在没有大量JS漏洞和黑客攻击的情况下注销。

默认情况下,表单身份验证似乎是答案,但有没有一种方法可以利用用户的windows凭据,并在不提示用户在网络上登录的情况下根据active directory进行身份验证?

在网络外提示凭据并在网络上使用Windows凭据的Web应用程序

不幸的是,即使在我给微软打电话后,我也无法找到解决这个问题的好办法。他们确实建议使用Active Directory联合身份验证服务。这不是我们的选择。

还有一篇很棒的博客文章,它的作用与我想要的相反,但可能会被操纵以发挥作用。

在与我的产品所有者合作后,我们确定了一个真正的表单身份验证模型。我能够安抚他们的方法是,对于本地网络上的用户,我将表单身份验证令牌和cookie的超时时间设置为更长的持续时间,并刷新持续时间,这样,如果用户经常在应用程序上活动,他们可能永远不会被提示登录。

这可能不是最优雅的解决方案,但它使我们能够满足产品所有者设定的要求。如果有人有其他建议,我很乐意听取。