gpt4 book ai didi

c# - asp.net下的Process.Start()?

转载 作者:可可西里 更新时间:2023-11-01 08:26:00 26 4
gpt4 key购买 nike

根据 msdn :

ASP.NET Web page and server control code executes in the context of the ASP.NET worker process on the Web server. If you use the Start method in an ASP.NET Web page or server control, the new process executes on the Web server with restricted permissions. The process does not start in the same context as the client browser, and does not have access to the user desktop.

哪个 帐户 正是“受限权限”

示例:

  • 我以 RoyiN 身份登录到 win7
  • Windows 身份验证已启用
  • 启用模拟为BobK web.config(整个站点)
  • W3WP 用户是 UserA(不是网络也不是 ApplicationPoolIdentity)。

在 C# 中,我执行 Process.start("...cmd.exe...")(with Startinfo 凭证作为: "Martin","密码","")

  • 谁是最终运行cmd.exe的高效帐号

  • “限制权限”实际上与谁有关?

最佳答案

模拟不会在这里发挥作用,因为在幕后,Process.Start 依赖于两个 native Win32 调用之一:

如果提供了 ProcessStartInfo.UserName:

CreateProcessWithLogonW(startInfo.UserName, startInfo.Domain, ...)

CreateProcessWithLogonW

如果不是:

CreateProcess(null, cmdLine, null, null, true, ...)

CreateProcess

传递给 CreateProcess 的 null 可能会让您感到困扰;来自 MSDN:

The lpSecurityDescriptor member of the structure specifies a security descriptor for the main thread. If lpThreadAttributes is NULL or lpSecurityDescriptor is NULL, the thread gets a default security descriptor. The ACLs in the default security descriptor for a thread come from the process token.

请注意,它说的是来自进程 token ,而不是调用线程 - 模拟身份没有机会加入聚会,因为它已绑定(bind)到线程。

关于c# - asp.net下的Process.Start()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14074069/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com