我开发了一个与报告服务互操作的Windows服务,因此我需要构建NetworkCredential以传递给SSRS。问题是 - 如何获得用户名,SecureString和运行该服务的用户域?
我会感激任何帮助!
答案 0 :(得分:1)
您可以通过以下方式获取当前用户:
System.Security.Principal.WindowsIdentity.GetCurrent().Name;
如果我没记错的话,这个字段的前缀也只有domain\username
您无法检索当前登录用户的密码。但是,您可以指定Windows服务运行的用户。这样您就可以知道密码,并能够链接该帐户,并在整个域中授予适当的访问权限。
请注意,如果您将来某个时候决定将密码更改为用户帐户,则您需要手动更新服务上的凭据。
答案 1 :(得分:0)
要获得完整的答案,包括名字,姓氏和域,我们可以使用以下代码:
var domain = Environment.UserDomainName;
UserPrincipal userPrincipal = UserPrincipal.Current;
var firstname = userPrincipal.GivenName;
var lastname = userPrincipal.SurName
var username_id = userPrincipal.SamAccountName;
您需要添加System.DirectoryServices.AccountManagement
作为程序集引用。