我们有一个Silverlight客户端,其中包括两个要求: - 在本地网络上打开文件(在Windows上使用UNC,在mac上使用SMB) - 将文件从Explorer / Finder拖放到SL客户端。
打开文件(使用UNC)在Windows上运行正常,可以使用IE,FireFox(进行一些调整)或使用COM自动化Out Of Browser。
在Mac上,事实证明这很困难; Out of Browser在Mac上没有“提升信任功能”(相当于Windows上的COM自动化),因此在Mac上的OOB中,HyperlinkButton控件是打开文件(uri)的唯一方法,但这会在打开时抛出安全异常“ SMB文件“(由于SL OOB中的交叉方案/跨域限制我猜)。 所以我们不得不去浏览器:现在Safari不能很好地处理这个问题。如果您调整浏览器以允许此操作,FireFox可以打开本地文件。所以我们做到了。
然后问题是文件拖放(在Safari中有效,但由于浏览器的限制,在Firefox中没有)。我们通过创建一个SL控件来解决这个问题,该控件使用HTML Bridge在作为可放置区域的SL客户端上注入HTML div。
由于能够打开本地文件需要调整浏览器,最好的解决方案是具有打开本地文件OOB的功能(相当于Windows上的COM自动化,例如能够运行AppleScript)。
这样的事情可能吗?是否有可能以某种方式在OOB中的Mac上通过SMB打开文件?
感谢。
PS:所以我们在Mac上有一个可行的解决方案是使用FireFox 5在浏览器中运行(调整以允许打开本地文件) - 直到我们遇到一个更严重的问题看起来像一个 Mac上FireFox的SL插件中存在严重的渲染问题;这个问题发布在这里: Silverlight rendering issue in Firefox 4 and 5 on MacBooks答案 0 :(得分:0)
我认为您正在寻找的是让受信任的Silverlight应用程序在浏览器中运行。有一个Windows解决方案。而且我不知道我们怎么能在MAC中做到这一点。
阅读:
http://msdn.microsoft.com/en-us/library/gg192793(v=vs.95).aspx
http://www.simple-talk.com/dotnet/.net-framework/elevated-trust-in-silverlight-4/