1

我有一个 Xbap 应用程序,它是需要文件系统访问的 Intranet 应用程序的一部分。

我已经完全信任该应用程序,使用有效证书对其进行签名并将证书导入 ie 并且 xbap 可以完美运行。

我的问题是,如果用户没有安装证书,即没有文件系统 IO 访问权限,我想优雅地处理 Permission Denied 异常

我想我可以通过在部分信任模式下运行 xbap 并使用类似下面的东西来测试权限来实现这一点

CodeAccessPermission p = new FileIOPermission(FileIOPermissionAccess.Write, @"c:\newfile.txt");

try
{
    p.Demand();
    // Has access
}
catch (Exception ex)
{
    // Does not have access
}

但是问题是,如果您没有将 FileIOPermissions 权限添加到项目属性窗口的安全选项卡中的“应用程序所需的权限”列表中,上述代码将始终失败......即使从本地文件系统运行。通过网络服务器。

如果我确实添加了 FileIOPermissions 权限,并且用户没有安装证书,那么我的任何代码都不会被命中,并且 xbap 会抛出一个通用的“未授予信任”错误屏幕......我不想要,我想显示我的用户一个正确的错误屏幕,解释了他们可以做些什么来修复这个错误

有任何想法吗?

4

1 回答 1

0

您可以手动编辑 app.manifest 文件来为您的应用程序请求较低的最低权限,然后(理论上)当您请求文件权限时,您的测试代码不会总是失败,但只有在用户未授予权限时才会按预期失败您的代码所需的权限。

于 2009-09-21T19:56:52.570 回答