我正在使用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的凭据。
非常感谢。
答案 0 :(得分:2)
您可以使用System.Net.CredentialCache.DefaultCredentials静态属性来获取当前的Windows用户凭据。
您将无法获得密码,因为这将是一个重大的安全漏洞。但是,您应该能够从中获得想要的一切。