在没有Azure的情况下在Windows中实施单点登录

时间:2015-07-23 13:46:20

标签: c# visual-studio-2010 azure single-sign-on

我在一个需要登录用户名和密码的Web应用程序上使用C#。此应用程序与Windows兼容,并且正在VS 2013中编写。在该公司的网络中,所有计算机都需要用户凭据,并且在所有情况下,应用程序的用户凭据将与其Windows登录凭据相同。因此,我们正在尝试实施一个系统,该应用程序可以访问当前用户提供的Windows凭据,并尝试使用这些凭据自动登录,而不是登录到Windows然后再在应用程序中输入相同的凭据。我知道有一种方法可以使用Azure的Active Directory来实现这一点,但目前我们正试图避免使用Azure。到目前为止,我已尝试使用WindowsIdentity.GetCurrent()Environment.UserName,但这两个都只提供用户名,而不是密码,我们需要完整的凭据。如果出于安全目的不能以这种方式做到这一点,那将不会让我感到震惊,但是如果有办法则会非常有用。有谁知道访问当前用户凭据的方法?感谢

1 个答案:

答案 0 :(得分:2)

您不需要Azure来完成此任务。您的应用程序池只需要启用Windows身份验证。但是,您无权访问密码。

之后,您将需要编写一个HttpHandler,它将获得HttpContext.Current.User.Identity值,并针对数据库或授权用户集合进行检查。您不需要重新验证"。