C# 如何从web请求以管理员身份运行ftp部署的exe?

C# 如何从web请求以管理员身份运行ftp部署的exe?,c#,security,ftp,impersonation,runas,C#,Security,Ftp,Impersonation,Runas,目标: 我定期通过FTP将新的.exe文件上载到windows server 2003,并希望通过点击同一服务器上某个网站的Url手动运行该文件。Exe需要在管理员帐户下运行,而不是在网络服务帐户下运行 我迄今为止取得的成就: 我已经能够通过web请求在服务器上的管理员帐户下成功运行notepad之类的应用程序,方法如下: PsExec .net process.Start(),并将凭据提供给process.StartInfo甚至 通过模拟管理员,然后使用process.Start而不使用凭据

目标: 我定期通过FTP将新的.exe文件上载到windows server 2003,并希望通过点击同一服务器上某个网站的Url手动运行该文件。Exe需要在管理员帐户下运行,而不是在
网络服务
帐户下运行

我迄今为止取得的成就: 我已经能够通过web请求在服务器上的管理员帐户下成功运行notepad之类的应用程序,方法如下:

  • PsExec
  • .net process.Start()
    ,并将凭据提供给
    process.StartInfo
    甚至
  • 通过模拟管理员,然后使用process.Start而不使用凭据()
问题:
上述方法运行my exe but任务管理器,或调用
System.Security.Principal.WindowsIdentity.GetCurrent().Name
显示它正在
网络服务下运行


我怀疑此文件添加了安全约束,因为它是从ftp链接到达的。在文件的属性中选中“以管理员身份运行”不是一个选项,因为文件将定期被替换,并且所有操作都需要自动化。此外,手动服务器配置应该是最小的,或者理想情况下不存在。只有代码的单一网页解决方案是理想的。编辑asp.net网页和exe都可以。(我尝试了使用exe自动重启的方法)。

对此不确定,但我怀疑这与您在
网络服务
用户下运行的网站有关。无论您的网站用户拥有何种权限,在您尝试运行可执行文件时,都可能授予/传递相同的权限

此服务器是在内部网络上还是以其他方式受到保护?(我希望如此!)。如果是这样,您可以尝试将运行网站的应用程序池更改为管理员帐户(在IIS中,右键单击运行网站的应用程序池,选择“高级设置”,然后查找标识设置)。如果我是对的,这将允许您以管理员身份运行可执行文件


但是,请注意,这可能会增加您的设置的安全风险:允许您的站点在管理员帐户下运行意味着如果有人能够穿透您现有的任何安全措施,就可以更轻松地访问整个服务器。确保对该服务器的访问受到严格限制,最好是它不能访问其他系统,因为这反过来会使它们在扩展时易受攻击。

我的想法是能够将单个web/trigger页面包含到任何站点中。如果没有人提出其他解决方案,我将采用这种方法,在这个触发页面上我有单独的站点和应用程序池。谢谢