Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在Silverlight中本地保存多个文件?_C#_Silverlight_Silverlight 4.0_Local Storage - Fatal编程技术网

C# 如何在Silverlight中本地保存多个文件?

C# 如何在Silverlight中本地保存多个文件?,c#,silverlight,silverlight-4.0,local-storage,C#,Silverlight,Silverlight 4.0,Local Storage,我的问题是我有一个LOB应用程序,它可能根据用户输入保存多个文件(只有在运行时才知道文件的数量)。不幸的是,将其保存为单个文件并让用户将其拆分,或者将其压缩为单个文件不是一个选项 SaveFileDialog似乎适合一次只保存一个文件。第三方控制可能是一种选择,但我还没有找到任何可以达到这一目的的方法。谢谢 浏览器安全模型指南(Silverlight之外)禁止web应用程序逻辑(脚本或其他)直接访问本地文件系统 考虑一下,如果web应用程序脚本可以将任意文件写入本地硬盘上的任意位置,恶意网站会对

我的问题是我有一个LOB应用程序,它可能根据用户输入保存多个文件(只有在运行时才知道文件的数量)。不幸的是,将其保存为单个文件并让用户将其拆分,或者将其压缩为单个文件不是一个选项


SaveFileDialog似乎适合一次只保存一个文件。第三方控制可能是一种选择,但我还没有找到任何可以达到这一目的的方法。谢谢

浏览器安全模型指南(Silverlight之外)禁止web应用程序逻辑(脚本或其他)直接访问本地文件系统

考虑一下,如果web应用程序脚本可以将任意文件写入本地硬盘上的任意位置,恶意网站会对您的计算机造成多大的破坏

因此,Silverlight将您的代码与本地文件系统隔离开来。Silverlight管理“打开文件”或“保存文件”对话框,但出于安全原因,您的web应用程序代码永远无法直接查看文件名的完整路径。Silverlight对话框一次仅支持使用一个文件名/路径

Silverlight确实在本地计算机上提供了独立存储,您的web应用程序可以在其中写入多个文件。但是,如评论中所述,隔离存储在两个方向上都是隔离的—它使web应用程序与本地文件系统保持隔离,这使得最终用户很难在浏览器之外访问隔离存储的内容。(困难到让非技术用户无法使用它,但还不足以让恶意窥探将隔离存储称为“安全的”)


除了编写自己的本地可执行浏览器扩展(针对您希望支持的每个不同的浏览器品牌和版本)(或针对某些浏览器的非沙盒javascript插件)之外,我认为web应用程序没有办法将数据推送到多个本地文件中,以便在一次用户操作中在浏览器之外使用。

由于这是intranet区域中的LOB,您是否考虑过要求用户将应用程序安装为具有更高信任度的OOB。这将允许您在不使用SaveFileDialog的情况下将文件写入users Documents文件夹

另一个选项是使用单个SaveFileDialog调用压缩文件


没有其他面向Silverlight的解决方案

所以你尝试过什么,这个运行的信任级别是什么,…我不认为Silverlight依赖于信任级别。然而,我们的大多数客户都在运行具有intranet安全性的IE。我开始认为这是不可能的,因为在ASP.NET(或任何基于web的)中实现这一点也很困难。虽然,Flash似乎对此有一些支持。你考虑过隔离存储吗?我没有,但这似乎是一个有趣的方法。使客户端可以访问文件可能很困难,不是吗?为什么压缩不是一个选项?最终看来我在与http规范作斗争,而且它缺乏多文件下载功能。@itchi:如果有这样的规范存在,我怀疑http规范是否会负责多文件下载。Mime消息格式已经为单个实体中的多文件内容指定了与http兼容的格式。问题是这种下载没有浏览器支持。