我有一个Xbap应用程序,它是需要文件系统访问的intranet应用程序的一部分。
我已经使应用程序完全信任,用有效的证书签名,并将证书导入ie,xbap工作得很好。
我的问题是,如果用户没有安装证书,即没有文件系统IO访问权限,我想优雅地处理权限被拒绝的异常
我认为可以通过在部分信任模式下运行xbap并使用如下代码测试权限来实现这一点
CodeAccessPermission p = new FileIOPermission(FileIOPermissionAccess.Write, @"c:\newfile.txt");
try
{
p.Demand();
// Has access
}
catch (Exception ex)
{
// Does not have access
}然而,问题是,如果您没有将FileIOPermissions权限添加到项目属性窗口的安全选项卡中的“应用程序所需的权限”列表中,则上述代码总是会失败……即使是从本地文件系统而不是通过web服务器运行。
但
如果我添加了FileIOPermissions权限,而用户没有安装证书,我的任何代码都不会被命中,并且xbap会抛出一个通用的“未授予信任”错误屏幕...这是我不想要的,我想向我的用户显示一个适当的错误屏幕,解释他们可以做些什么来修复这个错误
有什么想法吗?
发布于 2009-09-21 19:56:53
您可以手动编辑app.manifest文件,为您的应用程序请求较低的最低权限,然后(理论上)当您请求文件权限时,测试代码不会总是失败,但只有当用户没有授予您的代码所需的权限时,测试代码才会按预期失败。
https://stackoverflow.com/questions/1231089
复制相似问题