在本地WPF Web浏览器应用程序中如何写入文件?沙盒不允许?

时间:2010-08-30 18:27:55

标签: wpf

所以我有一个本地WPF Web浏览器应用程序,我需要它写入文本文件。但是我总是得到System.Reflection.TargetInvocationException类型的异常。我没有得到任何更多的信息,但我很确定这是因为它是从网络浏览器(安全等)运行。

我正在使用的代码在常规的Windows窗体应用程序等中工作。通常是这样的:

        StreamWriter sw;
        sw = File.CreateText("c:\\myTextFile.txt");
        sw.WriteLine("First line");
        sw.Close();

那么,有没有解决方法呢?

非常感谢, 托马斯

4 个答案:

答案 0 :(得分:1)

您可以尝试在Full Trust mode中运行。

答案 1 :(得分:1)

浏览器中的WPF将默认为部分信任。您可以在“项目属性”的“安全”选项卡中更改它(当然,主题是由受信任的用户安装)。

答案 2 :(得分:0)

问题不是WPF安全问题。问题是正在运行的操作系统安全功能:如果没有admin privs,则无法写入C:驱动器的根目录。您的应用程序不仅需要处于WPF完全信任模式,而且还需要在Vista和Windows 7及更高版本上授予您的应用程序管理权限。

所有这一切,您应该能够写入非受保护路径中的文件。例如,您可以写入Path.GetTempFilePath()返回的临时文件。但是,您的WPF浏览器应用程序可能仍然必须完全信任才能写入磁盘。

答案 3 :(得分:0)

请参阅this page,描述部分信任安全注意事项。如果您需要存储文件以供自己的应用程序使用,请考虑使用Isolated Storage。如果要允许用户将文件保存到磁盘,可以使用SaveFileDialog.OpenFile允许用户选择路径并确认保存文件。

相关问题