代码之家  ›  专栏  ›  技术社区  ›  Marcelo Cantos

C:加载漫游配置文件并以用户身份执行程序

  •  1
  • Marcelo Cantos  · 技术社区  · 16 年前

    在应用程序中,我需要使用另一个用户的凭据执行其他程序。目前我使用 System.Diagnostics.Process.Start 要执行程序:

    public static Process Start(
       string fileName,
       string arguments,
       string userName,
       SecureString password,
       string domain
    )
    

    但是,此功能不从网络加载漫游配置文件-这是必需的。

    我可以使用“runas/profile…”加载配置文件并执行命令,但这需要密码。一定有更优雅的方式…

    但是在哪里呢?

    2 回复  |  直到 16 年前
        2
  •  6
  •   Marcelo Cantos    16 年前

    我的解决方案(基于Leppie的提示):

            Process p = new Process();
    
            p.StartInfo.FileName = textFilename.Text;
            p.StartInfo.Arguments = textArgument.Text;
            p.StartInfo.UserName = textUsername.Text;
            p.StartInfo.Domain = textDomain.Text;
            p.StartInfo.Password = securePassword.SecureText;
    
            p.StartInfo.LoadUserProfile = true;
            p.StartInfo.UseShellExecute = false;
    
            try {
                p.Start();
            } catch (Win32Exception ex) {
                MessageBox.Show("Error:\r\n" + ex.Message);
            }