【发布时间】:2009-06-02 20:16:01
【问题描述】:
操作系统: Vista Business 64 位
编码: .NET 和第 3 方 EXE
问题: 安全性
我下载了 curl.exe 来帮助我从亚马逊加载产品信息。 Curl.exe 已预编译,不是 .NET 应用程序,因此我对 curl 的构建进行任何更改感到不舒服。
解决问题。
当我执行 CURL 时,我得到这个对话框:
说:打开文件 - 安全警告 无法验证发布者。您确定要运行此软件吗? 运行或取消
无论我是手动运行还是以编程方式运行软件,都会出现此错误。
当我手动使用这个软件时,我可以处理这个问题,但我试图自动化一个进程以编程方式运行它,所以我想禁止这个对话框。
在研究这个时,我得到了很多关于调整 IE 设置的信息......但我没有从浏览器运行任何东西,只是在 Windows 中启动 exe,所以这不是问题。
我还看到很多关于将不同域和服务器添加到我的允许列表的信息。这是在我自己的机器上本地运行的 (C:\curl.exe),所以这也不是问题。
我是我正在运行它的盒子的管理员。
关于这方面的信息很少。
编程笔记:
我正在像这样通过 .NET 运行这个文件:
string cmd = string.Empty;
cmd += @"--location --user username:userpass -C - ";
cmd += @"--digest -k https://assoc-datafeeds-na.amazon.com/datafeed/getFeed?filename=";
cmd += FeedName + ".gz ";
cmd += @"-o " + FeedFileFolder + FeedName + ".gz";
System.Diagnostics.Process proc; // Declare New Process
System.Diagnostics.ProcessStartInfo procInfo = new System.Diagnostics.ProcessStartInfo();
procInfo.UseShellExecute = true; //If this is false, only .exe's can be run.
procInfo.WorkingDirectory = "C:"; //execute notepad from the C: Drive
procInfo.FileName = "curl.exe"; // Program or Command to Execute.
procInfo.Arguments = cmd; //Command line arguments.
因此,如果我无法更改 Windows 中的设置以允许此未经验证的 EXE 没有数字签名,则另一种选择是调整我的 procInfo 以允许我禁止此对话框,但我还没有找到它.. .
有什么想法吗..?
谢谢, 汤姆
【问题讨论】:
-
修正您的代码格式,以获得更好的响应。
-
该对话框上是否也有一个复选框(“在打开此文件之前总是询问”)(在 Vista 上有)。如果是这样,请取消选中它,您应该可以在没有警告的情况下使用它。