如何以用户身份启动进程然后在c#ASP.NET中提升

时间:2010-07-28 16:57:28

标签: c# asp.net

我正在开发一个在服务器上安装软件的Web应用程序。

如果我登录属于特定组的用户然后以管理员身份运行install msi,我可以手动运行安装。

此特定组是本地管理员组的一部分。

我的应用程序池正在以Network_Service运行。

我是否冒充使用runAs动词?但后来我需要知道u / p作为用户和管理员的u / p ..我想

我正在使用System.Diagnostics.Process类。

       System.Diagnostics.ProcessStartInfo oInfo = new System.Diagnostics.ProcessStartInfo(str);
        oInfo.UseShellExecute = false;
        oInfo.ErrorDialog = false;
        oInfo.CreateNoWindow = false;
        oInfo.RedirectStandardOutput = true;


        Process p = System.Diagnostics.Process.Start(oInfo);

        System.IO.StreamReader oReader2 = p.StandardOutput;
        string sRes = oReader2.ReadToEnd();
        oReader2.Close();
    return sRes;

2 个答案:

答案 0 :(得分:0)

您需要将UserNamePassword属性设置为管理员帐户的登录凭据。

答案 1 :(得分:0)

稍后您无法更改正在运行的进程的用户上下文。我建议您使用Windows身份验证和模拟来确保Web请求作为经过身份验证的用户执行,此外您不必关心用户凭据。