Create WindowsIdentity using just a domain and username

Matt picture Matt · May 9, 2011 · Viewed 17.2k times · Source

I am building a site that gets user information using the WindowsIdentity of the current user. The main info I get from this is the ssid.

I do this for the current users as follows

IntPtr logonToken = WindowsIdentity.GetCurrent().Token;
WindowsIdentity windowsId = new WindowsIdentity(logonToken);
string ssid = windowsId.User.ToString();

What I need to do now, and am failing at, is getting the ssid for any arbitrary username that exists on the domain.

I tried WindowsIdentity(string), but that gave me a SecurityException

The name provided is not a properly formed account name.

Answer

Matthew Abbott picture Matthew Abbott · May 9, 2011

How are you formatting the principal? Generally they take the form of [email protected], so if your AD provides principal resolution on say example.com, a user principal name (UPN) may look like: [email protected]. The WindowsIdentity(string) constructor accepts a UPN, not an older format username EXAMPLE\joe.bloggs