通过.Net interop从部分受信任的环境中执行的代码调用非API(例如COM API)的非托管代码的正确方法是什么?
在为Microsoft SharePoint开发ASP.Net WebPart时,我必须通过其COM API与另一个系统进行通信。我通过将SharePoint的权限更改为完整来临时解决了此问题。后来我通过在最小设置之上实现自定义安全性来提高SharePoint UnmanagedCode权限,但这并没有那么大的改进,因为非托管代码可以跳过CAS的其余部分。
根据我的收集,我可能需要一个完全受信任的程序集,它允许部分信任的调用者,并充当托管和非托管域之间的层。此外,我认为需要一些额外的设置,允许部分受信任的代码调用完全受信任的代码,而完全受信任的代码不受部分受信任代码的许可。
那么正确的方法是什么以及如何在实践中实施它?
答案 0 :(得分:3)
是的,您需要一个完全受信任的程序集,它允许部分信任的调用者,并充当托管和非托管域之间的层。
如果您编写的代码必须与部分受信任的代码交互或从部分受信任的上下文操作,则应考虑以下因素:
答案 1 :(得分:1)
调用的代码需要具有UnmanagedCode权限。那部分是不可避免的。问题是,您将如何获得具有UnmanagedCode权限的代码?不幸的是,我不太了解WebPart / SharePoint及其限制,无法帮助您。