Advertisement
zebraxxl

Untitled

May 18th, 2011
280
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.10 KB | None | 0 0
  1. using System;
  2. using System.Security;
  3. using System.Security.Permissions;
  4. using System.Security.Policy;
  5. using System.Reflection;
  6.  
  7. namespace ScriptsSecurity
  8. {
  9.     public class ScriptExecutor : MarshalByRefObject
  10.     {
  11.         public void Run()
  12.         {
  13.             Script.Script.RunMe();
  14.         }
  15.     }
  16.  
  17.     class Program
  18.     {
  19.         static StrongName GetStrongName()
  20.         {
  21.             Assembly a = typeof(Core.Core).Assembly;
  22.  
  23.             return new StrongName(
  24.                 new StrongNamePublicKeyBlob(a.GetName().GetPublicKey()),
  25.                 a.GetName().Name,
  26.                 a.GetName().Version
  27.                 );
  28.         }
  29.  
  30.         static void Main(string[] args)
  31.         {
  32.             AppDomainSetup setup = new AppDomainSetup { ApplicationBase = Environment.CurrentDirectory };
  33.  
  34.             PermissionSet permissions = new PermissionSet(null);
  35.             permissions.AddPermission(new SecurityPermission(SecurityPermissionFlag.Execution));
  36.  
  37.             AppDomain dom = AppDomain.CreateDomain("SANDBOX", null, setup, permissions, new StrongName[] { GetStrongName() });
  38.  
  39.             ScriptExecutor e = (ScriptExecutor)(dom.CreateInstanceAndUnwrap("ScriptsSecurity", "ScriptsSecurity.ScriptExecutor"));
  40.             e.Run();
  41.  
  42.             AppDomain.Unload(dom);
  43.         }
  44.     }
  45. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement