c# - 将参数传递给 EXE 程序集

标签 c#

我想从另一个实用程序应用程序启动我的应用程序并传递一个参数。最简单的解决方案:

System.Diagnostics.Process.Start(appPath, param);

... 不是一个选项,因为我想阻止其他人向应用程序提供参数。换句话说:我想从我的实用程序应用程序启动我的应用程序。

如何实现?

谢谢, 莱塞克

最佳答案

如果您(出于安全原因)不想传递有意义的参数来启动您的主程序,那么您可以使用匿名管道(从 Net 4 开始)
基本上你遵循这个伪代码

  • 在实用程序中,创建匿名管道并启动传递管道句柄的主程序。
  • 主程序使用传入的句柄监听匿名管道
  • 实用程序使用匿名管道发送消息

Here you can find a detailed example

这样,从实用程序传递到主程序的参数代表匿名管道,但其他程序或用户无法轻易伪造主程序。如果您在这个场景中添加两个程序之间的某种形式的 secret 握手,您将获得强大的保护。

关于c# - 将参数传递给 EXE 程序集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13828060/

相关文章:

c# - 使用 Asp.Net Core Cookie 身份验证的注销操作

c# - 读取其他进程控制台输出

javascript - 如何在部分回发时保留 ASP 文本框的类

c# - 使用 WebHttpBinding 通过 HTTP 从 SQL 传输表格数据的绝对最快方法

c# - 你如何调和 IDisposable 和 IoC?

c# - 当右侧操作数是泛型时, "as"运算符如何翻译?

c# - 只有一个匹配属性的 MoreLinq ExceptBy

java - 使用 Rijndael 在 .Net 中加密的 java 中解密文件时出错

c# - 我需要开发一个 web 服务监控 .net 应用程序。设计这个的最佳方法是什么

c# - 在相同属性上将一个对象映射到另一个对象的表达式