有沒有辦法將.NET程序集加載到沙箱環境中,該沙箱環境也受到自定義方式的限制?我知道你可以在不同的AppDomain中運行一個Assembly,但是你能限制它不能做某些你想要限制的事情嗎?如何使用Sandbox在.NET中創建插件模型?
例如:我希望能夠在ASP.NET應用程序的單獨程序集中加載插件(簡單,只是通過特定接口定義),但我只希望插件能夠訪問某些數據訪問層組件,並且不能直接連接到任何數據庫。我在考慮讓一個應用程序實例託管多個客戶端數據的情況,我只希望插件能夠訪問當前登錄的特定客戶端/用戶的數據。
任何人都可以如何做到這一點的想法?
我發現下面的問題就在這裏等如何在沙箱中加載程序集,但它不談論加入沙盒的任何自定義限制:
Loading Assemblies from a .Net Application in a 'Sandbox Environment'
更新:它看起來就像你可以在調用「AppDomain.CreateDomain」時設置一個非常具體的「PermissionSet」,但我不確定我需要設置什麼權限來允許/禁止上述指定權限。還有這篇文章在MSDN上:http://msdn.microsoft.com/en-us/library/bb763046.aspx
另外,我要做到這一點在.net 2.0/3.5
任何其他的想法,不是使用System.AddIn其他?
對不起,使用.NET 1.0無法做到這一點。 – 2009-07-29 00:20:53
約翰桑德斯,恩......我沒有指定版本,想通的人會承擔至少.NET 2.0。無論如何,我添加了我正在尋找的問題的版本。 – 2009-07-29 03:38:30