Skip to content

Instantly share code, notes, and snippets.

@iarovyi
Created May 17, 2014 07:38
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save iarovyi/db71b8d809f9309ab7e4 to your computer and use it in GitHub Desktop.
Save iarovyi/db71b8d809f9309ab7e4 to your computer and use it in GitHub Desktop.
Sandbox - sandbox for plugin
string pluginFolder = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "plugins");
string plugInPath = Path.Combine(pluginFolder, "plugin.exe");
PermissionSet ps = new PermissionSet(PermissionState.None);
ps.AddPermission(new SecurityPermission(SecurityPermissionFlag.Execution));
ps.AddPermission(new FileIOPermission(FileIOPermissionAccess.PathDiscovery | FileIOPermissionAccess.Read, plugInPath));
ps.AddPermission(new UIPermission(PermissionState.Unrestricted));
AppDomainSetup setup = AppDomain.CurrentDomain.SetupInformation;
AppDomain sandbox = AppDomain.CreateDomain("sbox", null, setup, ps);
sandbox.ExecuteAssembly(plugInPath);
AppDomain.Unload(sandbox);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment