我收到了针对我们的VSTO单词插件的某些特定用户引发的TrustNotGrantedException异常。在VSTO单词插件中调试TrustNotGrantedException
这些用户的证书安装正确。
时更新应用程序检查的异常被抛出:如下
try
{
ApplicationDeployment.CurrentDeployment.CheckForUpdate()
}
catch(TrustNotGrantedException ex)
{
Log(ex);
}
堆栈跟踪记录:
User has refused to grant required permissions to the application.
at System.Deployment.Application.ApplicationTrust.RequestTrust(SubscriptionState subState, Boolean isShellVisible, Boolean isUpdate, ActivationContext actCtx, TrustManagerContext tmc) at System.Deployment.Application.DeploymentManager.DetermineTrustCore(Boolean blocking, TrustParams tp) at System.Deployment.Application.DeploymentManager.DetermineTrust(TrustParams trustParams) at System.Deployment.Application.ApplicationDeployment.CheckForDetailedUpdate(Boolean persistUpdateCheckResult) at System.Deployment.Application.ApplicationDeployment.CheckForUpdate() at iReport.iReportAddIn.CheckForUpdates()
有没有人经历过这种或知道如何防止这种情况的代码或任何解决方法?
编辑:
我曾经使用过此blog post的问题阅读,它似乎是它可以与CAS权限问题用户的问题。
我会尽量让用户访问更新URL,并且稍后会进行跟进,但我更希望能够在代码中阻止此操作,而不是修复单个客户端计算机。喜欢的东西:
caspol -m -ag 1 -url "http://machinename/application/*" FullTrust -exclusive on
EDIT2:
使用Caspol.exe工作!有没有人知道一种方法来防止在代码中发生这种情况? 或任何人都可以解释为什么它只能发生在选择用户?
EDIT3:
我要去尝试添加
<system.web>
<!-- level="[Full|High|Medium|Low|Minimal]" -->
<trust level="Full" originUrl=""/>
</system.web>
到的app.config
Edit4:
添加全CAS信任的应用程序.config没有帮助。任何人都可以告诉我它是否有可能实现CASPOL在代码中所做的事情?
Edit5:
如果这是不可能做到这一点的代码,有没有简单的方法来为安装的ClickOnce的一部分运行CASPOL命令?
取决于环境......运行应用程序的用户拥有的权限(admin/non-admin/restricted)...域/ AD环境中的任何特殊设置,可能是某些组策略等。 – Yahia
@Yahia不幸的是,我们很难将其缩小 - 我知道遇到问题的用户都是本地计算机上的所有管理员。感谢评论:) – woggles
你确定正确的标签是system.web吗?我认为这可能是Word加载项的其他内容,因为它不是网页。 –