public async Task WhenCredentialsGiven_LoadsUserEnvironment() { var desktopPermissionManager = new DesktopPermissionManager(); LocalPrincipalManager manager = new LocalPrincipalManager(desktopPermissionManager, "IIS_IUSRS"); string userName = "******"; if (manager.FindUser(userName) != null) { manager.DeleteUser(userName); } var user = manager.CreateUser(userName); desktopPermissionManager.AddDesktopPermission(userName); try { var si = CreateRunSpec("cmd.exe", new[] { "/C", "set USERNAME" }); si.Credentials = user; si.BufferedInputOutput = true; si.WorkingDirectory = Environment.SystemDirectory; using (var p = Runner.Run(si)) { WaitForGoodExit(p, 1000); var output = await p.StandardOutput.ReadToEndAsync(); string expectedUserName = string.Format("USERNAME={0}", user.UserName); Assert.Contains(expectedUserName, output); } } finally { desktopPermissionManager.RemoveDesktopPermission(userName); manager.DeleteUser(userName); } }
void AddedUserCanBeRelocated() { manager.CreateUser(testUserName); Assert.Equal <string>(testUserName, manager.FindUser(testUserName)); }