如何获取当前用户的用户名、密码和域

本文关键字:用户 密码 何获取 获取 | 更新日期: 2023-09-27 18:05:17

我开发了一个windows服务与报告服务互操作,所以我需要形成NetworkCredential传递给SSRS。问题是-我怎么能得到用户名,SecureString和域的用户运行的服务?

我将感激任何帮助!

如何获取当前用户的用户名、密码和域

您可以通过以下方式获取当前用户:

System.Security.Principal.WindowsIdentity.GetCurrent().Name;

如果我没记错的话,这也有一个domain'username

形式的域名前缀。

无法检索当前登录用户的密码。但是,您可以做的是指定windows服务作为哪个用户运行。这样,您就可以知道密码,并能够链接该帐户,并在整个域内授予适当的访问权限。

请注意,如果将来某个时候决定更改用户帐户的密码,则必须手动更新服务上的凭据。

要得到一个完整的答案,包括FirstName, LastName和Domain,我们可以使用下面的代码:

var domain = Environment.UserDomainName;
UserPrincipal userPrincipal = UserPrincipal.Current;
var firstname = userPrincipal.GivenName;
var lastname = userPrincipal.SurName
var username_id = userPrincipal.SamAccountName;

您需要添加System.DirectoryServices.AccountManagement作为汇编引用。