如何获取当前Windows登录的用户凭证?

时间:2018-11-07 19:09:07

标签: c# asp.net-mvc

我正在使用ASP.NET Core 2.0 Web应用程序。它具有登录名和自己的用户界面。    我正在尝试检索Windows登录用户的凭据-如用户名,电子邮件和密码。在登录应用程序时,已登录用户的凭据被设置为用户。因此,我需要在登录过程之前检索登录到用户信息中的Windows。我尝试了以下方法:

 // If domain is example.com, DomainName gives EXAMPLECOM. Plus can't access Password
 string evnName = Environment.UserDomainName + Environment.UserName;

在HomeController(登录后)和启动中,我尝试了

// User is null   
string userName = this.User.FindFirst(ClaimTypes.Name)?.Value;

我在处理登录过程的服务中尝试了上述方法。也不能从他们那里得到。

检索此消息的主要原因是确定用户是否具有SMTP访问权限(如果已设置SMTP)。

任何人都可以帮助我知道,如何在登录过程之前以某种方式检索Windows Logged User的凭据。

非常感谢。

1 个答案:

答案 0 :(得分:2)

您可以使用System.Net.CredentialCache.DefaultCredentials静态属性来获取当前的Windows用户凭据。

您将无法获得密码,因为这将是一个重大的安全漏洞。但是,您应该能够从中获得想要的一切。