我的桌面計算機上運行了一個程序,它使WCF服務可用。這是我以普通用戶身份登錄時運行的常規Windows窗體應用程序。從asp.net代碼隱藏在服務器上啓動進程,並讓它在服務器桌面上可見
我把WCF接口,這樣我可以看到從外部網頁程序的狀態。這很好,我可以看到正在運行的程序的狀態,甚至可以根據我的看法改變它們。
我唯一不能做的就是啓動程序。如果我進入網頁,程序是而不是正在運行,我希望能夠啓動它。一個簡單的Process.Start(programEXE)是不夠的,因爲程序啓動時,它不在桌面上,我看不到它,儘管它顯示在任務管理器中。
我試圖創建憑證,並用這些憑據啓動程序,但它有一個很模糊的退出「程序啓動失敗」的錯誤,或與我的憑據啓動,但仍然在桌面上顯示不出來。在後一種情況下,我在任務管理器中以我的名字看到它,但沒有看到實際的程序。
所以,如何在服務器上啓動一個程序,在登錄用戶的桌面上是可見的(這裏只有一個用戶,並且用戶總是登錄)?
此外,我可以做些什麼來確保這不會成爲安全漏洞?我想過的一個想法是在自己的虛擬目錄下運行launcher.aspx,在userid下,它只具有對program.exe所在的目錄的讀取權限,並且沒有其他讀或寫權限。還有其他建議嗎?
最後,只是要清楚:我是而不是試圖在用戶的計算機上啓動任何東西。單擊「啓動程序」鏈接,應在Web服務器,而不是在客戶端機器上啓動一個程序,但該程序應是可見的登錄用戶的服務器上。
另一個評論:這是一個一次性爲我自己,並可能永遠不會安裝在任何計算機上,除了我自己的。 – 2009-09-02 22:42:02