使用ASP.Net到一个特定的桌面上启动的服务器中的应用(Using ASP.Net to laun

2019-08-19 04:18发布

我有一些,作为我的IIS网络服务器在同一台机器上运行实用程序。

我想要做的就是让一个网页来实例化一个可执行文件。 如果我使用的Process.Start()的进程启动,但显然为相同的用户的网络服务器,因此它不能与桌面交互。 对于应用程序的99%,这是没有问题的。 不过,我想能够运行他们,如果特定用户(仅过我)已经推出了他们。

这更是一个尝试,看看这是不是一个严重的开发项目成为可能,所以我更感兴趣的是比目标的方法。

理想情况下,如果我登录到箱(几乎总是),那么它应该只是运行,好像我跟着一个快捷方式。 如果没有,启动应用程序,并拥有它连接到我的桌面,当我登录将是完美的。 如果用户登录之前是不可能的,我可以接受。

我知道在安全方面的考虑,但我通过减少它们:

  • 网站需要身份验证+ SSL
  • 应用的列表来启动,其中不能被远程修改的文件被配置(或根本由web用户 - 只读)
  • 这个盒子是在DMZ
  • 最坏情况下,该机器相对不重要并且可以容易地再成像。

我GOOGLE了,但,这似乎是一个相当不寻常的请求,所以没有很多的,除了信息“不要以为你能做到这一点” - 所以我想我会问在这里得到无论是)一个人的希望办法做到这一点或二)为什么不能做一个像样的解释。

如果它使任何简单,抛开网络方面 - 如何启动一个进程中的另一个用户的安全上下文并连接到他们的桌面(如果他们有一个)

预先感谢任何帮助和指针,你可以提供。

Answer 1:

这里有一个想法:

创建一个asp.net应用程序更新保存有关需要运行的应用程序信息的表格。 因此,应用程序路径和触发器可以在不loggining服务器进行设置。

然后根据需要创建一个Windows服务来观看此表并运行的进程? 这样,你只需要运行你neeed该帐户下的服务。

这将是一个有点像调度,除时间表将是一个数据库表?

人们还可以使用这个程序来启动,并根据需要停止服务。

显然,asp.net应用程序将需要催产素是安全的。



Answer 2:

我用了一个类似的想法在我的Web服务器上运行的管理服务。 什么,你需要做的是用户的模拟。 看看我的博客,我贴出了如何为服务做到这一点。 这应该差不多为你的一模一样。

http://dotnetchris.wordpress.com/2008/09/24/scheduled-task-status-start-stop-of-windows-service/

该机器需要允许完全信任的代码运行,因为它使用的extern电话,但我认为这显然不是一个问题,因为它是你的机器。



Answer 3:

如果你不担心这个安全问题,为什么不干脆把

<identity impersonate="true"
      userName="domain\user" 
      password="password" />

在web.config中改变整个Web应用程序上下文



文章来源: Using ASP.Net to launch an application on the SERVER on a specific desktop