2012-02-06 11 views
1

C#プログラムに埋め込みリソースとして持っているファイルがあります。このリソースを読んでから、System.Diagnostics.Process.Start()コマンドを使って外部のexeに渡す必要があります。外部exeは、リソースパスをOS内のその場所に移動します。それをストリームなどのように渡す方法はありますか?または、私は一時的なファイルにそれを書く必要がありますし、外部のexeファイルのパスを送信するつもりですか?ファイルストリームをSystem.Diagnostics.Process.Startに渡す

埋め込みリソースは証明書ファイルです。外部exeはsigntoolです。だから、機密性のために私はシステムにリソースを書き込まないようにしたいと思います。

これは可能ですか?

+0

パイプを使用してデータを送信することはできますか? –

+0

リソースを埋め込むことは安全だと思うのは大きな間違いです。 –

答えて

0

暗号化された個人情報交換(PFX)形式のファイルに証明書を書き込み、ファイルパスとパスワードをコマンドラインのsigntoolに渡すことができます。

1

いいえ、それはすぐにはできません。あなたが呼び出すEXEは、別の方法で書かれなければならないでしょう。とにかく、あるプロセスから別のプロセスにハンドルを渡すのは簡単ではありません。

0

ツールによっては、CMDの「パイプ」(|)オプションと同様に、入力としてファイルを渡すことができます(テキストのみ)。このアプローチは、標準入力をデータのソースとして使用するツール(つまり、Windowsに組み込まれたfindstrなどのほとんどの検索と置換ツール)でのみ可能です。

そうでなければ、

アプリケーションの一部として証明書がある場合(埋め込みリソース)、すでにディスクに存在していることに注意してください。それを別のツールに使用させるために、短い時間だけ別々に保存することに大きな違いはありません。あなたが本当にそれらを守る必要がある場合 - サインを扱う安全な場所に別のマシンを持ってください。

関連する問題