在 XBAP 中刻录 CD
Posted
技术标签:
【中文标题】在 XBAP 中刻录 CD【英文标题】:CD Burning within an XBAP 【发布时间】:2011-04-07 06:20:12 【问题描述】:我有一个需要能够刻录 cd 的 XBAP。从 Visual Studio 内部运行时,一切正常。但是,当从浏览器运行时,IMAPI dll 会在尝试访问驱动器时立即报告环境不受支持。
我假设这归结为许可。我已经安装了一个签名证书,并且 xbap 设置为作为完全信任的应用程序运行(尽管我猜它不可能或者我不会遇到这个问题)。
目前这一切都在我的本地计算机上运行,但最终我希望将其部署到 Web 服务器(所有用户都已经在他们的客户端上安装了证书)。
有人对我错过/做错了什么有任何想法吗?
更新:
我尝试创建一个新的测试证书,并将其安装在我的证书存储中,然后针对它签署 XBAP,但这没有任何区别。
如果有人有想法,真的可以做一些想法吗?
进一步更新:
我创建了一个可以刻录 cd 的控制台应用程序。脱壳到这个控制台应用程序允许我从我的 xbap 刻录 cd,但不能从 xbap 本身刻录。
然而,这真的不是我想要的。理想情况下,我希望将所有这些都包含在 xbap 中。如果做不到这一点,有没有办法将控制台应用程序包含在 xbap 的一键部署中?
谢谢
【问题讨论】:
【参考方案1】:我相信 XBAP 不可能做到这一点。根据MS documentation on XBAPs,
权限示例不可用 在互联网区:
FileIOPermission - 此权限控制在磁盘上读取和写入文件的能力。因此,Internet 区域中的应用程序无法读取用户硬盘上的文件。
RegistryPermission - 此权限控制读取/写入注册表的能力。因此,Internet 区域中的应用程序无法访问或控制用户注册表中的状态。
SecurityPermission.UnmanagedCode - 此权限控制调用本机 Win32 函数的能力。
当您通过 Internet 运行 XBAP 时,您会遇到问题 3:尝试与非托管代码进行互操作。
我建议使用 ClickOnce 将您的应用程序部署为独立应用程序。这样,您可以完全访问系统,但仍然可以像使用 XBAP 一样轻松部署和升级。
*编辑*
您可以尝试一件事——我不能保证它会起作用——但您可以让您的用户进入 IE Internet 选项,将您的网站添加到受信任的网站列表中。我敢打赌,您的 CD 刻录代码将可以工作,因为它将位于受信任区域,而不是 Internet 区域。
【讨论】:
【参考方案2】:试着去
HKLM\SOFTWARE\Microsoft.NETFramework\Windows Presentation Foundation\Hosting
在注册表中
创建一个名为 RunUnrestricted 且值为 1 的新 DWORD。
【讨论】:
以上是关于在 XBAP 中刻录 CD的主要内容,如果未能解决你的问题,请参考以下文章
linux下有没有类似ultraiso的可以刻录硬盘镜像的软件?