Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在没有Azure的Windows中实现单点登录_C#_Visual Studio 2010_Azure_Single Sign On - Fatal编程技术网

C# 在没有Azure的Windows中实现单点登录

C# 在没有Azure的Windows中实现单点登录,c#,visual-studio-2010,azure,single-sign-on,C#,Visual Studio 2010,Azure,Single Sign On,我正在C#上一个需要登录用户名和密码的web应用程序。此应用程序与Windows兼容,并在VS 2013中编写。在该公司的网络中,所有计算机都需要用户凭据,并且在所有情况下,应用程序的用户凭据都将与其Windows登录凭据相同。因此,我们正在尝试实现一个系统,在该系统中,应用程序可以访问当前用户提供的Windows凭据并尝试使用这些凭据自动登录,而不是登录Windows然后在应用程序中再次输入相同的凭据。我知道有一种方法可以在Azure中使用active directory来实现这一点,但目前我

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

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


在此之后,您很可能需要编写一个
HttpHandler
,它将获取
HttpContext.Current.User.Identity
值,并根据数据库或授权用户的集合进行检查。您不需要“重新验证”。

太好了,谢谢!:)(它还不允许我接受答案,但一旦它接受了,我会将其标记为已回答)不需要任何HttpHandler、角色成员身份。自ASP.NET的第一个版本以来,它就在盒子中。将用户放入特定于角色的帐户组,并使用
IsInRole
检查成员资格。ASP.NET还允许通过角色、属性和配置设置进行授权,假设他使用Active Directory进行所有特定于应用程序的组分配,这在我工作过的任何环境中都没有。什么样的web应用程序?具体细节各不相同,但ASP.NET Web表单和MVC都支持Windows身份验证和基于角色的授权,通过属性、配置设置或使用
IsInRole
直接检查。