我收到了針對我們的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加載項的其他內容,因爲它不是網頁。 –