我想Process.Start
和一些特权有限的用户通话,因为运行程序可能包含恶意代码。在这里,我认为Everyone
首先尝试应该是正确的,并且我认为它没有任何关联的密码。
但是,以下代码将抱怨用户名或密码不正确(当然,用户名确实存在,因此看起来与密码有关):
var startInfo = new ProcessStartInfo("some_exe");
startInfo.WorkingDirectory = Environment.CurrentDirectory;
startInfo.UserName = "Everyone";
startInfo.Domain = "mydomain";
startInfo.UseShellExecute = false;
Process.Start(startInfo);
如果无法做到这一点,我必须以某种方式动态地创建一个具有有限特权的用户帐户,并具有用于使用的完整用户名/密码Process.Start
。
在.NET core中,我们不能使用AppDomain
创建沙箱的方法,这里唯一推荐的方法是尝试使用特权较少/受限的分支来分支另一个进程。
SIDEveryone
不是用户,而是一个特殊的系统SID(有点像一个组)。因此,您不能使用它来“运行为”。
您需要专门为此创建一个用户。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句