asp.netWebサイトからの外部アプリケーションの起動について質問があります。今ではそれを防ぐためのセキュリティ対策が講じられていると思います。それは良い習慣ではないことはわかっていますが、私が開発しているイントラネットサイトでは、それを実行できると非常に便利です。
これまでのところ、サーバーをローカルで(デバッグで)実行している場合に外部アプリを起動できる場所を見つけましたが、正常に動作します。ファイルを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;
}