2012-02-06 79 views
1

我有一个文件,我有作为我的C#程序中的嵌入式资源。我需要读取此资源,然后通过System.Diagnostics.Process.Start()命令将它传递给外部exe。外部exe需要资源路径到其在OS中的位置。有没有办法将它作为流或类似的东西传递?或者我将不得不将它写入临时文件,然后将文件路径发送到外部exe文件?传递文件流到System.Diagnostics.Process.Start

嵌入式资源是证书文件external exe是signtool。所以由于我想尝试的敏感特性而不是将资源写入系统。

这可能吗?

+0

使用管道发送数据可以吗? – 2012-02-06 17:46:15

+0

认为嵌入资源使其安全是一个很大的错误。 – 2012-02-06 18:52:44

回答

0

您可以使用加密个人信息交换(PFX)格式将证书写入文件,然后在命令行上将文件路径和密码传递给signtool。

1

不,这不是马上可能的。您调用的EXE必须以不同的方式写入,并且无论如何都没有简单的方法将句柄从一个进程传递到另一个进程。

0

根据工具,您可以将文件作为输入(仅限文本),类似于CMD的“管道”(|)选项。这种方法只适用于采用标准输入作为数据源的工具(即大多数查找和替换工具,包括内置于Windows中的findstr)。

否则 - 否。

请注意,如果您将证书作为应用程序的一部分(嵌入式资源),它已经存在于磁盘上。短时间单独保存以让其他工具使用它没有多大区别。如果你真的需要保护他们 - 在安全的地方分开处理签名的机器。