仅使用域和用户名创建WindowsIdentity

Mat*_*att 6 c# asp.net windows-identity

我正在构建一个使用当前用户的WindowsIdentity获取用户信息的站点.我从中得到的主要信息是ssid.

我为当前用户执行此操作,如下所示

IntPtr logonToken = WindowsIdentity.GetCurrent().Token;
WindowsIdentity windowsId = new WindowsIdentity(logonToken);
string ssid = windowsId.User.ToString();
Run Code Online (Sandbox Code Playgroud)

我现在需要做的是,并且失败了,就是获取域中存在的任意用户名的ssid.

我尝试了WindowsIdentity(字符串),但这给了我一个SecurityException

提供的名称不是正确形成的帐户名称.

Mat*_*ott 5

你是如何格式化校长的?通常它们采用的形式user@domain.ext,因此,如果您的AD提供主要解决方案example.com,那么用户主体名称(UPN)可能如下所示:joe.bloggs@example.com.该WindowsIdentity(string)构造函数接受UPN,而不是一个旧格式的用户名EXAMPLE\joe.bloggs

  • 我只有一个像"DOMAIN\username"这样的字符串,我怎样才能得到WindowsPrincipal? (4认同)