RazorEngine を使用しています。実行時にビューモデルにバインドする動的テンプレートがいくつかあります。私の要件は、サンドボックスでコードを実行することです。したがって、バインディングのみが許可されます。RazorEngine を使用すると、任意のアプリ ドメインでコードを実行できます。
using (var service = new IsolatedTemplateService(() => appDomain))
{
return service.Parse(newTemplate, model, null, null);
}
次のアクセス許可で app-domain を実行すると、動作します。
var permissionSet = new PermissionSet(PermissionState.Unrestricted);
しかし、これらの権限を使用して実行すると、
var permissionSet = new PermissionSet(PermissionState.None);
permissionSet.AddPermission(new SecurityPermission(PermissionState.Unrestricted));
permissionSet.AddPermission(new ReflectionPermission(PermissionState.Unrestricted));
私は手に入れます、
[SecurityException: Request failed.]
System.AppDomain.CreateInstance(String assemblyName, String typeName, Boolean ignoreCase, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes) +0
RazorEngine.Templating.IsolatedTemplateService..ctor(Language language, Encoding encoding, IAppDomainFactory appDomainFactory) +408
RazorEngine.Templating.IsolatedTemplateService..ctor(Language language, Encoding encoding, Func`1 appDomainFactory) +73
RazorEngine.Templating.IsolatedTemplateService..ctor(Func`1 appDomainFactory) +41
付与する必要がある特別な許可はありますか?