Silverlight中的存储选项

时间:2011-10-05 16:45:57

标签: .net silverlight silverlight-4.0

我目前正在开发一个具有非常有趣的要求的项目。它必须是银色的,但所有存储的数据必须存储在本地,不能发送到服务器,但它。

隔离存储似乎是完美的候选者,除了许多客户希望能够选择存储数据文件的位置(哪个孤立的存储似乎从你那里抽象)并且看起来我无法打开除非“用户启动”

,否则Silverlight中的文件保存对话框

因此,用户可以在应用程序中保存任何内容,而不是弹出保存对话框,我的选择是什么?

我一直在集思广益的事情:在应用程序启动时打开文件并在应用程序期间保持流打开,让他们设置漫游配置文件,以便将应用程序数据和隔离存储存储在他们的拇指驱动器上(非常凌乱)解)。还有别的事吗?也许将数据推送到浏览器并使用一些狡猾的JavaScript解决方案?

2 个答案:

答案 0 :(得分:2)

我认为没有直接解决这个问题的方法。在没有用户交互的情况下访问本地文件听起来像平台中的安全漏洞(Silverlight和/或浏览器)。

如果你想让代码自己陷入安全漏洞,我可以想到一个解决方案。 ActiveX控件可以解决这个问题,但是你只能局限于IE。我想浏览器加载项也可以做到这一点。

我还可以想象将数据发送到Web服务,并且该服务以某种方式通过某种类型的网络共享(仅限内联网)将文件推送(但不存储)到本地计算机上。但这听起来很糟糕!

理智的妥协是强制用户以Silverlight交互式打开文件。如果他们选择不使用对话框打开文件,则使用独立存储使其成为可选项。也许可以轻松地在两个选项之间切换。

答案 1 :(得分:0)

如果您使用隔离存储来保存保存文件的位置,然后在首次运行时询问保存位置,或者保存文件不在其保存位置,该怎么办?那就是数据是通过某种控制在本地存储的,但是您不会保持流打开(可能持续数小时)或提示用户进行每次保存。