WCFサービスを利用できるようにするデスクトップマシン上でプログラムを実行しています。これは、通常のユーザーとしてログインしたときに実行する通常のWindowsフォームアプリケーションです。asp.net codebehindのサーバーでプロセスを起動し、サーバーのデスクトップに表示します。
外部Webページからプログラムのステータスを確認できるように、WCFインターフェイスを配置しました。これはうまくいく、私は実行中のプログラムの状態を見ることができ、私が合っているように物事を変えることさえできる。
私ができないのは、プログラムを起動することだけです。私がウェブページに行って、プログラムがでなくて、が走っていれば、私はそれを始めることができます。単純なProcess.Start(programEXE)は、プログラムの起動中にデスクトップにはなく、見ることができないので、タスクマネージャーに表示されます。
資格情報を作成しようとしましたが、これらの資格情報でプログラムを起動しようとしましたが、非常に曖昧な "プログラムの開始に失敗しました"というエラーが表示されるか、または資格情報で始まります。後者の場合、タスクマネージャで自分の名前で表示されますが、実際のプログラムは表示されません。
ログインしているユーザーのデスクトップに表示されるサーバー上のプログラムを起動するにはどうすればよいですか(ユーザーは1人しかなく、そのユーザーは常にログインしています)。
また、これがセキュリティホールにならないように私ができることは何ですか?私が考えていたのは、launcher.aspxを独自の仮想ディレクトリ内で、program.exeがあるディレクトリへの読み取りアクセス権しか持たないユーザーIDの下で実行することでした。他の読み取りまたは書き込みのアクセス許可はありません。その他の提案はありますか?
最後に、私はではありません。は、ユーザーのコンピュータで何かを起動しようとしています。 「プログラムを起動する」リンクをクリックすると、Webサーバー上のプログラムが起動され、クライアントマシン上には表示されず、サーバーのログインユーザーにそのプログラムを表示する必要があります。
他の1つのコメント:これは自分自身のための1回限りであり、おそらく自分自身以外のどのコンピュータにもインストールされることはありません。 –