Launcher.LaunchFileAsync()和处理互联网安全设置

Dar*_*jan 6 c# windows-store-apps

我正在处理的应用程序从我们的服务器下载文件,然后启动它们.虽然许多文件工作正常,但是在启动Microsoft已经确定"不安全"的文件时遇到了一些问题,这些文件是普通文件(.doc/.xml),但是从我们的服务器下载,现在带有未知的发布者标记.

码:

bool res = await Windows.System.Launcher.LaunchFileAsync(file, options);
if (!res)
{
    options.DisplayApplicationPicker = true;
    options.TreatAsUntrusted = true;
    res = await Windows.System.Launcher.LaunchFileAsync(file, options);
    if (!res)
    {
        await Util.ShowErrorMessage("Unable to open file");
    }
}
Run Code Online (Sandbox Code Playgroud)

正如您从代码中看到的那样,当初始启动失败时,我尝试使用'TreatAsUntrusted'标志重新启动它,让Windows警告用户,因此希望如果用户"OK",我将获得启动文件的权限警告.这也不起作用.

反正我是否将文件标记为可信任?或者我可以以某种方式启动它吗?

Sma*_*s89 0

您可以使用 Windows 版的 wget 来规避此问题。对于 wget 您需要下载wget.exe. 它使用库libssl, libiconv2, libintl3。我测试了它并让它工作,我还将 wget 和库打包到https://dl.dropboxusercontent.com/u/5402101/Desktop.zip,所以你不必 google+download+unzip。

要下载文件,请写入wget.exe www.mydomain.com/myfile. 适合您的相关选项可能包括:

  1. -O mydoc.doc,将文件保存为 mydoc.doc,无论服务器将文件命名为什么。

  2. -c如果文件被中断,则继续下载文件。

我知道这正是您所认为的解决方案,但它有效:)

  • 这不是我的问题,只是想我在某处听说过不能使用非托管库,但我自己从未测试过。 (2认同)