我在 WPF 应用程序(自托管)中有 WCF 服务,并且出现典型错误“您的进程没有对此命名空间的访问权限”。用户不能拥有管理员权限,因此使用 .manifest 不是解决方案。端口是动态的,应用程序每次运行时都会计算一个空闲端口,所以应用程序必须通过netsh多次插入监听端口我使用域管理员的ProcessStartInfo,但要启动用户需要管理员权限的进程。以管理员身份运行应用程序也不是解决方案,所以我需要普通用户可以运行应用程序,并且程序通过 netsh 作为域管理员添加端口。
我的过程是这样的:
ProcessStartInfo psi = new ProcessStartInfo("netsh", parameter);
SecureString ss = new SecureString();
for (int i = 0; i < adminPass.Length; i++)
ss.AppendChar(adminPass[i]);
psi.Password = ss;
psi.UserName = Admin;
psi.Domain = Domain;
psi.Verb = "runas";
psi.RedirectStandardOutput = false;
psi.CreateNoWindow = true;
psi.WindowStyle = ProcessWindowStyle.Hidden;
psi.UseShellExecute = false;
Process.Start(psi);
非常感谢