我有一个 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 会抛出一个通用的“未授予信任”错误屏幕......我不想要,我想显示我的用户一个正确的错误屏幕,解释了他们可以做些什么来修复这个错误
有任何想法吗?