0
我使用插件體系結構創建應用程序。加載外部DLL文件,我使用MEF框架。所有這些外部DLL運行在不同的域中。我想允許創建模塊的人定義PermissionSets模塊將需要執行。但是,我有問題,與加載此類庫becouse container.ComposeParts(this);
拋出這樣的例外:安全透明方法異常的嘗試
Attempt by security transparent method 'System.ComponentModel.Composition.ReflectionModel.ReflectionComposablePart.Crea
teInstance(System.Reflection.ConstructorInfo, System.Object[])' to access
security critical method
'Sth.Plugins.Dummy.DummyConfigurer..ctor()' failed.
Assembly 'System.ComponentModel.Composition, Version=4.0.0.0,
Culture=neutral, PublicKeyToken=b77a5c561934e089' is marked with the
AllowPartiallyTrustedCallersAttribute, and uses the level 2 security
transparency model. Level 2 transparency causes all methods in
AllowPartiallyTrustedCallers assemblies to become security transparent by
default, which may be the cause of this exception.
目前,我使用這樣的權限:
var permissions = new PermissionSet(PermissionState.None);
permissions.AddPermission(new SecurityPermission(SecurityPermissionFlag.Execution | SecurityPermissionFlag.ControlThread));
permissions.AddPermission(new FileIOPermission(FileIOPermissionAccess.Read | FileIOPermissionAccess.PathDiscovery, _codeStorage.RuntimeFolder));
我在想,當我標誌着加載的類DLL作爲SecuritySafeCritical
它會工作,但我錯了。
我該如何讓它工作?