我想用一些权限有限的用户调用Process.Start
,因为运行的程序可能包含恶意代码。在这里,我认为每个人
应该首先尝试,并且我认为它没有任何关联的密码。
但是以下代码会提示用户名或密码不正确(当然用户名确实存在,所以看起来与密码有关):
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
来创建沙箱,这里唯一推荐的方法是尝试使用较少/有限的特权分支另一个进程。
最佳答案
SID Everyone
不是用户,它是一个特殊的系统 SID(有点像组)。所以你不能用它来“运行”。
您需要专门为此目的创建一个用户。
关于c# - Process.Start 用户名 'Everyone' ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55236847/