2012-04-19 85 views
1

asp.net Webサイトから外部アプリケーションを起動する際に質問があります。今は、それを防ぐためのセキュリティ対策があると思います。それは良い方法ではないことは分かっていますが、私が開発しているイントラネットサイトでは、これを行うには非常に便利です。asp.netから外部プログラムを起動する

これまでのところ、サーバーをローカルで(デバッグ時に)実行していて、外部アプリケーションを起動できる場所が見つかりました。ファイルをWebサーバーに公開すると、もう機能しません。私のファイルパスは私が想像しているものと違ってくるかもしれませんが、ローカルファイルが存在するかどうかをどうやって確認できますか?または私はできますか?

だからここに私のコードです:

//the actual launch button on the page 
protected void btnLaunchTnet_Click(object sender, EventArgs e) 
{ 
    string tnetpath = "c:\path\tnet.exe";  
    RunProcess(tnetpath, ""); 
} 


private void RunProcess(string cmd, string arguments) 
{ 
    System.Diagnostics.Process p; 
    p = new System.Diagnostics.Process(); 

    p.StartInfo.FileName = cmd; 

    if (arguments.Length > 1) 
    { 
     p.StartInfo.Arguments = arguments; 
    } 
    p.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden; 
    p.StartInfo.RedirectStandardOutput = false; 
    p.StartInfo.UseShellExecute = false; 
    p.Start(); 
} 

私も、私はそれが鳴るアプリに

private bool CheckFileExists(string filepath) 
{ 
    FileInfo SetupPath = new FileInfo(filepath); 
    return SetupPath.Exists; 
} 
+0

@ "c:\ path \ tnet.exe"または "c:\\ path \\ tnet.exe" – SimpleVar

+0

うん、私はそれに気付いたことがあるので、バックスラッシュをエスケープするために、tnetpath文字列の前に@私はそれをコピーしなかった。しかし、それをキャッチするためにありがとう。 – Seril

答えて

1

ActiveXコントロールを使用する方法はわかっていますが、Internet Explorerでのみ動作します。

これをチェックアウトするpost

+0

私はこれを調べます。私たちは(残念なことに)主にIEを使用していますので、これが唯一の方法であればこれがうまくいくかもしれません。リンクありがとう! – Seril

+0

これは私が行ったルートです。私はそれが必要な方法で動作するようにしました。再度、感謝します! – Seril

+0

助けてくれてうれしいです。 :) –

0

を起動するボタンを無効または有効にするために使用することを「このファイルが存在するかどうかを確認」迅速を持っていますクライアントマシンでプログラムを起動したいのと同じです。

これはできません。

同じドメインにあり、Windows認証を使用している場合は、偽装とSysInternals PsExec.exeを使用してプロセスをリモートから起動する必要があります。

+0

それは私が見ることができるものです。しかし、単にバックグラウンドでユーザーとしてプログラムを起動するか、プログラムが実際にユーザーのためにポップアップするのだろうか?私がユーザーのためにウェブサイトから何らかの種類のクライアントアプリケーションを起動したいのかと言うと、 – Seril

+0

私は分かりません。それを試してみてください。 – SLaks

0

@Slaksが書いたものだけを書いていますが、より多くの単語を使用しています。

ウェブページを閲覧すると、次のようなことが起こります。

  1. Webブラウザプログラムは、Webサーバープログラムにネットワーク接続します。
  2. Webブラウザは、HTTP要求をWebサーバに送信します。
  3. Webサーバーは、HTTP要求の情報を処理します。
  4. WebサーバーはHTTP応答をブラウザに返します。
  5. ブラウザプログラムは、HTTP応答に含まれるHTMLを表示します。

例のコードは、上記の手順3で実行されるコードです。

これは、あなたがしたい方法でプロセスを起動し、しかし、あなたはそれを見ていないと私はより多くを説明しますなら、私に知らせないことができる理由あなたが見るのに十分な情報でなければなりません。

関連する問題