c# - Process.Start 用户名 'Everyone' ?

标签 c# process .net-core permissions privileges

我想用一些权限有限的用户调用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/

相关文章:

c# - 防止 Visual Studio 调试在明显的 "unhandled exception"上中断

asp.net-mvc - 如何在 Rider 中启用 View 热重载?

.net-core - System.MissingMethodException 单元测试

c# - .NET Core 中的服务定位器不考虑范围

linux - 如何在 Linux 中获取有关进程的信息

java - 我们如何检测 main() 线程是否已死亡但所有生成的 thread() 线程都在运行?

c# - 单独的数字元素

c# - 表单流枚举提示错误

c# - Microsoft.AspNetCore.Odata 配置日期时间序列化以使用 Utc 或省略 Timezone

linux - CPU使用率: is there any events fired when overall system cpu usage changes