none
asp.net 2.0 执行外部应用程序无运行窗口 RRS feed

  • 问题

  • 这几天学习asp.net,在启动外部程序方面出现了一点问题。iis7+asp.net 2.0 开发环境vs2008 sp1(c#)。
    写了一个demo,点击button启动记事本。一开始建站用file system,vs中debug没有出现问题,记事本正常启动。之后用iis架起网站来访问,发现notepad.exe进程存在,但没有出现运行窗口。
    实现方式我换了多种,.net 的process类、调用win32函数 ShellExecute、利用脚本启动程序,结果都是一样的。
    对比后发现,vs的debug模式启动notepad的用户是本地当前用户,而iis建起的网站启动notepad的用户名则是iis网站应用程序池的名字,怀疑是权限问题。
    查阅资料,发现在.net v1.1 中,出现这样的问题只要将machine.config中的username值从machine变成system就可以提高权限,从而使运行窗口出现,但我直接安装的.net 3.5sp1,在v2.0的目录下machine.config与资料中所述格式完全不同,也没有找的能够提升运行程序权限的相关字段。

    求教如何解决此问题?
    2010年1月28日 9:43

答案

  • 这是iis安全限制问题  1.X存在的漏洞
    如果像你这样需求 随便写个asp.net程序 放在服务器上攻击主机
    2010年1月28日 10:25
  • 你好,

    既然是在服务器端打开的,用户也看不到效果,那这样就没意义了。

    我倒腾了半天,在VS里面是可以,部署在IIS上就不行了,后来我使用用户名和密码还是不行。
    询问了下同事,说IIS会检测当前用户是否是active的,就算设置了用户名和密码,它发现你不是活动的,所以就不行了。

    哪位如果有更好的解释请告知,谢谢。


    Microsoft Online Community Support
    2010年1月29日 6:21

全部回复

  • 这是iis安全限制问题  1.X存在的漏洞
    如果像你这样需求 随便写个asp.net程序 放在服务器上攻击主机
    2010年1月28日 10:25
  • 服务器上的页面会随随便便被篡改吗?应该不是吧……而且现在的状况是可以运行,但是没有界面……要说攻击,也是能做到的吧……

    不过,眼下希望能提供一个实现的方法,哪位可以赐教一下?
    2010年1月29日 1:35
  • 你好!

    你要明白,Process 是打开的服务端的记事本,而不是客户端的。

    知识改变命运,奋斗成就人生!
    2010年1月29日 2:22
    版主
  • 嗯,我知道。
    我现在需要调用启动服务器上的程序并且窗口化,有没有能够实现的变通方法呢?
    2010年1月29日 3:00
  • 你好,

    既然是在服务器端打开的,用户也看不到效果,那这样就没意义了。

    我倒腾了半天,在VS里面是可以,部署在IIS上就不行了,后来我使用用户名和密码还是不行。
    询问了下同事,说IIS会检测当前用户是否是active的,就算设置了用户名和密码,它发现你不是活动的,所以就不行了。

    哪位如果有更好的解释请告知,谢谢。


    Microsoft Online Community Support
    2010年1月29日 6:21
  • 谢谢了。
    2010年1月29日 7:48