I am not sure if I understood all your comments but I have start from the begining.<div><br></div><div>In this page <a href="http://msdn.microsoft.com/en-us/library/bb384237.aspx">http://msdn.microsoft.com/en-us/library/bb384237.aspx</a> they explain how to get .NET partial trust scenarios and they say that I should use the PermissionSet class to create a proper sandbox.</div>
<div><br></div><div><span class="Apple-style-span" style="font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 11px; "><table style="border-collapse: collapse; width: 858px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-style: initial; border-color: initial; font-size: 11px; border-style: initial; border-color: initial; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(221, 221, 221); border-right-color: rgb(221, 221, 221); border-bottom-color: rgb(221, 221, 221); border-left-color: rgb(221, 221, 221); margin-bottom: 5px; margin-left: 5px; margin-top: 5px; margin-right: 10px; ">
<tbody><tr style="vertical-align: top; "><th style="background-image: initial; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: rgb(239, 239, 247); border-top-width: 0px; border-right-width: 0px; border-bottom-width: 1px; border-left-width: 0px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(204, 204, 204); border-right-color: rgb(204, 204, 204); border-bottom-color: rgb(200, 205, 222); border-left-color: rgb(204, 204, 204); font-family: Verdana; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; text-align: left; vertical-align: bottom; color: rgb(0, 0, 102); background-position: initial initial; ">
<strong>Caution:</strong></th></tr><tr style="vertical-align: top; "><td style="background-image: initial; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: rgb(247, 247, 255); border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(204, 204, 204); border-right-color: rgb(213, 213, 211); border-bottom-color: rgb(204, 204, 204); border-left-color: rgb(204, 204, 204); font-family: Verdana; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; text-align: left; vertical-align: top; margin-top: 1px; margin-right: 1px; margin-bottom: 1px; margin-left: 1px; overflow-x: auto; overflow-y: auto; background-position: initial initial; ">
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; ">You cannot create a sandboxed application domain by specifying only evidence. You must specify a grant set or an application domain policy level. (Setting an application domain policy level is not discussed in this topic.) For example, if you use the <span><a id="ctl00_MTCS_main_ctl134_ctl00_ctl08" href="http://msdn.microsoft.com/en-us/library/8dba63a0.aspx" onclick="javascript:Track(&#39;ctl00_MTCS_main_ctl134_ctl00_contenthere|ctl00_MTCS_main_ctl134_ctl00_ctl08&#39;,this);" style="text-decoration: none; color: rgb(0, 51, 204); ">CreateDomain(String, Evidence)</a></span>method overload with Internet evidence, the permissions are enforced only at the application domain boundary. Within the application domain, assemblies are granted permissions based on standard security policy. For a console application on your computer, that would be full trust.</p>
</td></tr></tbody></table></span><br><div class="gmail_quote">As I commented before, if I use this CreateDomain method:</div><div class="gmail_quote"><br></div><div class="gmail_quote"><span class="Apple-style-span" style="font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 11px; line-height: 15px; "><pre class="libCScode" id="ctl00_MTCS_main_ctl134_ctl00_ctl22_code" style="background-image: initial; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: rgb(221, 221, 221); border-top-color: rgb(200, 205, 222); border-top-style: solid; border-top-width: 1px; padding-left: 5px; padding-right: 5px; padding-top: 5px; margin-top: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; display: block; font-family: Courier, Verdana, Arial, Helvetica, sans-serif; color: rgb(0, 0, 102); word-wrap: break-word; overflow-x: hidden; overflow-y: hidden; white-space: pre-wrap; background-position: initial initial; ">
AppDomain.CreateDomain(<span style="color: maroon; "><span style="color: maroon; ">&quot;ChildDomain1&quot;</span></span>, 
                       internetZone, 
                       adSetup, 
                       internetSet, 
                       <span style="color: blue; ">null</span>);</pre></span></div><div class="gmail_quote"><br></div><div class="gmail_quote">When I create the engine using:  <i><b>Python.CreateEngine(aSandboxedDomain)</b></i>   it throws the exception: <b><i>System.Runtime.Serialization.SerializationException<span class="Apple-style-span" style="font-weight: normal;">  Type is not resolved for member &#39;Microsoft.Scripting.Hosting.ScriptRuntimeSetup,Microsoft.Scripting.</span></i></b></div>
<div class="gmail_quote"><i><br></i></div><div class="gmail_quote"><i><br></i></div><div class="gmail_quote">Dino gave me another way to create the appDomain, it works but it is not enough for what I am trying to do.</div>
<div class="gmail_quote"><br></div><div class="gmail_quote">Could you someone help me trying to understand why the Python.CreateEngine is throwing this exception when I pass as a parameter an AppDomain created with an PermissionSet?</div>
<div class="gmail_quote"><br></div><div class="gmail_quote">Thanks a lot.</div><div class="gmail_quote">Nicolas</div><div class="gmail_quote"><br></div><div class="gmail_quote">On Mon, Nov 9, 2009 at 7:44 PM, Dino Viehland <span dir="ltr">&lt;<a href="mailto:dinov@microsoft.com">dinov@microsoft.com</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">









<div lang="EN-US" link="blue" vlink="purple">

<div>

<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">Couple of options spring to mind:</span></p>

<p style="margin-left:.75in"><span style="font-size:11.0pt;color:#1F497D"><span>1.<span style="font:7.0pt &quot;Times New Roman&quot;">       </span></span></span><span style="font-size:11.0pt;color:#1F497D">Setup
evidence such that your assembly is given full trust.  I believe you had the
start of this in your other code where you were adding some strong name
evidence.  You should be able to search the web for normal .NET partial trust
scenarios for getting this right.</span></p>

<p style="margin-left:.75in"><span style="font-size:11.0pt;color:#1F497D"><span>2.<span style="font:7.0pt &quot;Times New Roman&quot;">       </span></span></span><span style="font-size:11.0pt;color:#1F497D">Setup
your object model so that it is a MarshalByRefObject which lives in another app
domain.  You can then expose the remote object to the partial trust app domain
via SetVariable.</span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D"> </span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">As far as including the DLL – you can call LoadAssembly on the
ScriptRuntime and give it your assembly.  Then the user can import all of the
types from your DLL as they need them.  That won’t work w/ #2 though. 
Alternately you can implement IAttributesCollection (or use a dynamic object in
2.6 although IAC is still supported) and create a scope w/ that as the backing storage. 
Then you’ll be able to lazily resolve the members rather than eagerly
populating them - although you still need some code to lazily resolve them.</span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D"> </span></p>

<div style="border:none;border-left:solid blue 1.5pt;padding:0in 0in 0in 4.0pt">

<div>

<div style="border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in">

<p class="MsoNormal"><b><span style="font-size:10.0pt">From:</span></b><span style="font-size:10.0pt">
<a href="mailto:users-bounces@lists.ironpython.com" target="_blank">users-bounces@lists.ironpython.com</a> [mailto:<a href="mailto:users-bounces@lists.ironpython.com" target="_blank">users-bounces@lists.ironpython.com</a>] <b>On
Behalf Of </b>Nicolás Buttarelli<br>
<b>Sent:</b> Monday, November 09, 2009 7:49 AM</span></p><div><div></div><div class="h5"><br>
<b>To:</b> Discussion of IronPython<br>
<b>Subject:</b> Re: [IronPython] Safe execution of python scripts on my .net
application</div></div><p></p>

</div>

</div><div><div></div><div class="h5">

<p class="MsoNormal"> </p>

<p class="MsoNormal">Hi all again, I am still working with the same problem.</p>

<div>

<p class="MsoNormal"> </p>

</div>

<div>

<p class="MsoNormal">Now I am creating the appDomain in this way by recommendation of
Dino:</p>

</div>

<div>

<div>

<p class="MsoNormal">        </p>

</div>

<div>

<p class="MsoNormal">        <i><span style="font-family:&quot;Courier New&quot;">public static AppDomain CreateSandboxAppDomain()</span></i></p>

</div>

<div>

<p class="MsoNormal"><i><span style="font-family:&quot;Courier New&quot;">  
     {</span></i></p>

</div>

<div>

<p class="MsoNormal"><i><span style="font-family:&quot;Courier New&quot;">  
         AppDomainSetup anAppDomainSetup = new
AppDomainSetup();</span></i></p>

</div>

<div>

<p class="MsoNormal"><i><span style="font-family:&quot;Courier New&quot;">  
         anAppDomainSetup.ApplicationBase =
AppDomain.CurrentDomain.BaseDirectory;</span></i></p>

</div>

<div>

<p class="MsoNormal"><i><span style="font-family:&quot;Courier New&quot;">  
         anAppDomainSetup.ApplicationName =
&quot;Testing&quot;;</span></i></p>

</div>

<div>

<p class="MsoNormal"><i><span style="font-family:&quot;Courier New&quot;">  
         Evidence evidence = new Evidence();</span></i></p>

</div>

<div>

<p class="MsoNormal"><i><span style="font-family:&quot;Courier New&quot;">  
         evidence.AddHost(new
Zone(SecurityZone.Internet));</span></i></p>

</div>

<div>

<p class="MsoNormal"><i><span style="font-family:&quot;Courier New&quot;">  
         </span></i></p>

</div>

<div>

<p class="MsoNormal"><i><span style="font-family:&quot;Courier New&quot;">  
         AppDomain aSandboxedDomain =
AppDomain.CreateDomain(&quot;Test Domain&quot;, </span></i></p>

</div>

<div>

<p class="MsoNormal"><i><span style="font-family:&quot;Courier New&quot;">  
                     
                     
                 evidence, </span></i></p>

</div>

<div>

<p class="MsoNormal"><i><span style="font-family:&quot;Courier New&quot;">  
                     
                     
               
 anAppDomainSetup);</span></i></p>

</div>

<div>

<p class="MsoNormal"><i><span style="font-family:&quot;Courier New&quot;">  
         </span></i></p>

</div>

<div>

<p class="MsoNormal"><i><span style="font-family:&quot;Courier New&quot;">  
         return aSandboxedDomain;</span></i></p>

</div>

<div>

<p class="MsoNormal"><i><span style="font-family:&quot;Courier New&quot;">  
     }</span></i></p>

</div>

</div>

<div>

<p class="MsoNormal"> </p>

</div>

<div>

<p class="MsoNormal">Now it is working but I have security restrictions over some
.dll that I want to have full trusted permissions. I am trying to do this:</p>

</div>

<div>

<p class="MsoNormal"> </p>

</div>

<div>

<div>

<p class="MsoNormal"><i><span style="font-family:&quot;Courier New&quot;">string
aPythonScript =</span></i></p>

</div>

<div>

<p class="MsoNormal"><i><span style="font-family:&quot;Courier New&quot;">@&quot;aDocument
= CDLDocument()</span></i></p>

</div>

<div>

<p class="MsoNormal"><i><span style="font-family:&quot;Courier New&quot;">aFigure =
TextBlock(1, &#39;type 1&#39;)</span></i></p>

</div>

<div>

<p class="MsoNormal"><i><span style="font-family:&quot;Courier New&quot;">anotherFigure =
TextBlock(2, &#39;type 2&#39;)</span></i></p>

</div>

<div>

<p class="MsoNormal"><i><span style="font-family:&quot;Courier New&quot;">aDocument.AddFigure(aFigure)</span></i></p>

</div>

<div>

<p class="MsoNormal"><i><span style="font-family:&quot;Courier New&quot;">aDocument.AddFigure(anotherFigure)</span></i></p>

</div>

<div>

<p class="MsoNormal"><i><span style="font-family:&quot;Courier New&quot;">aList =
aDocument.Figures</span></i></p>

</div>

<div>

<p class="MsoNormal"><i><span style="font-family:&quot;Courier New&quot;">&quot;;</span></i></p>

</div>

<div>

<p class="MsoNormal"> </p>

</div>

<div>

<p class="MsoNormal"><i><span style="font-family:&quot;Courier New&quot;">ScriptSource
source = engine.CreateScriptSourceFromString(aPythonScript);</span></i></p>

</div>

<div>

<p class="MsoNormal"><i><span style="font-family:&quot;Courier New&quot;">ScriptScope scope
= engine.CreateScope();</span></i></p>

</div>

<div>

<p class="MsoNormal"><i><span style="font-family:&quot;Courier New&quot;">  
         </span></i></p>

</div>

<div>

<p class="MsoNormal"><i><span style="font-family:&quot;Courier New&quot;">scope.SetVariable(&quot;CDLDocument&quot;,
typeof(CDLDocument));</span></i></p>

</div>

<div>

<p class="MsoNormal"><i><span style="font-family:&quot;Courier New&quot;">scope.SetVariable(&quot;TextBlock&quot;,
typeof(TextBlock));</span></i></p>

</div>

<div>

<p class="MsoNormal"><i><span style="font-family:&quot;Courier New&quot;">source.Execute(scope);</span></i></p>

</div>

<div>

<p class="MsoNormal"> </p>

</div>

<div>

<p class="MsoNormal">This is throwing
the  System.Security.SecurityException.</p>

</div>

<div>

<p class="MsoNormal"> </p>

</div>

<div>

<p class="MsoNormal">1. How can I give full trusted to a specific dll in an
AppDomain?</p>

</div>

<div>

<p class="MsoNormal"> </p>

</div>

<div>

<p class="MsoNormal">2. How can I include a .dll to the scope instead of do a
SetVariable for each type which I have to manage from the python script?</p>

</div>

<div>

<p class="MsoNormal"> </p>

</div>

<div>

<p class="MsoNormal">Thanks!</p>

</div>

<div>

<p class="MsoNormal">Nicolás</p>

</div>

</div>

<div>

<p class="MsoNormal" style="margin-bottom:12.0pt"> </p>

<div>

<p class="MsoNormal">2009/11/6 Nicolás Buttarelli &lt;<a href="mailto:nbuttarelli@gmail.com" target="_blank">nbuttarelli@gmail.com</a>&gt;</p>

<p class="MsoNormal" style="margin-bottom:12.0pt">Hi,</p>

<div>

<div>

<p class="MsoNormal">On Fri, Nov 6, 2009 at 1:07 AM, Dino Viehland &lt;<a href="mailto:dinov@microsoft.com" target="_blank">dinov@microsoft.com</a>&gt;
wrote:</p>

<div>

<div>

<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">So you’ve run this as a standalone
program and it’s failing?  In the standalone app are all of the IronPython
and DLR DLLs present (IronPython.dll, IronPython.modules.dll,
Microsoft.Scripting.Core.dll, Microsoft.Scripting.dll, Microsoft.Dynamic.dll
and Micrsoft.Scripting.Extensionattribute.dll)?  </span></p>

</div>

</div>

</div>

<div>

<p class="MsoNormal">Yes I have all this dlls present. </p>

</div>

<div>

<blockquote style="border:none;border-left:solid #CCCCCC 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-right:0in">

<div>

<div>

<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D"> </span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">A slightly modified version of this,
dropping the strong name, works just fine for me:</span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D"> </span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">using System;</span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">using Microsoft.Scripting;</span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">using Microsoft.Scripting.Hosting;</span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">using IronPython.Hosting;</span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">using System.Security;</span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">using System.Security.Permissions;</span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D"> </span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">class Test {</span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">    public static void
Main(string[] args) {</span></p>

<div>

<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">    </span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">       
PermissionSet aRestrictedPermissionSet = new
PermissionSet(PermissionState.None);</span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">       
aRestrictedPermissionSet.AddPermission(new
SecurityPermission(SecurityPermissionFlag.Execution));</span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D"> </span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">       
AppDomainSetup domaininfo = new AppDomainSetup();</span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">       
domaininfo.ApplicationBase = System.Environment.CurrentDirectory;</span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D"> </span></p>

</div>

<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">       
AppDomain aSandboxedDomain = AppDomain.CreateDomain(&quot;Sandboxed
Domain&quot;,</span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">                 
AppDomain.CurrentDomain.Evidence,</span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">                 
domaininfo,</span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">                 
aRestrictedPermissionSet);</span></p>

<div>

<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D"> </span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">       
ScriptEngine engine = Python.CreateEngine(aSandboxedDomain);</span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">       
ScriptSource source = engine.CreateScriptSourceFromString(&quot;2+2&quot;);</span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">       
ScriptScope scope = engine.CreateScope();</span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">       
Console.WriteLine(source.Execute(scope));</span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D"> </span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">    }</span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">}</span></p>

</div>

</div>

</div>

</blockquote>

</div>

<div>

<p class="MsoNormal"><br>
Great, I will try this after university. Thanks! </p>

</div>

<div>

<blockquote style="border:none;border-left:solid #CCCCCC 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-right:0in">

<div>

<div>

<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">Compile with:</span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D"> </span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">csc test.cs
/r:Microsoft.Scripting.Core.dll /r:Microsoft.Scripting.dll /r:IronPython.dll</span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D"> </span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">And run and it prints 4.  Does that
not work for you?</span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D"> </span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">We also have a different way we do this
in our test suite which also works:</span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D"> </span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">           
AppDomainSetup info = new AppDomainSetup();</span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">           
info.ApplicationBase = AppDomain.CurrentDomain.BaseDirectory;</span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">           
info.ApplicationName = &quot;Test&quot;;</span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">           
Evidence evidence = new Evidence();</span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">           
evidence.AddHost(new Zone(SecurityZone.Internet));</span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">           
AppDomain newDomain = AppDomain.CreateDomain(&quot;test&quot;, evidence, info);</span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">           
</span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">           
// create runtime in partial trust...</span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">           
ScriptRuntime runtime = Python.CreateRuntime(newDomain);</span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D"> </span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">           
// get the Python engine...</span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">           
ScriptEngine engine = runtime.GetEngine(&quot;py&quot;);</span></p>

</div>

</div>

</blockquote>

</div>

<div>

<p class="MsoNormal"><br>
This make sense too, I will try it. Thanks again. </p>

</div>

<div>

<div>

<blockquote style="border:none;border-left:solid #CCCCCC 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-right:0in">

<div>

<div>

<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D"> </span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D"> </span></p>

<div style="border:none;border-left:solid windowtext 1.5pt;padding:0in 0in 0in 4.0pt;border-color:-moz-use-text-color -moz-use-text-color -moz-use-text-color blue">

<div>

<div style="border:none;border-top:solid windowtext 1.0pt;padding:3.0pt 0in 0in 0in;border-color:-moz-use-text-color -moz-use-text-color">

<p class="MsoNormal"><b><span style="font-size:10.0pt">From:</span></b><span style="font-size:10.0pt"> <a href="mailto:users-bounces@lists.ironpython.com" target="_blank">users-bounces@lists.ironpython.com</a>
[mailto:<a href="mailto:users-bounces@lists.ironpython.com" target="_blank">users-bounces@lists.ironpython.com</a>]
<b>On Behalf Of </b>Nicolás Buttarelli<br>
<b>Sent:</b> Thursday, November 05, 2009 11:18 AM</span></p>

<div>

<div>

<p class="MsoNormal"><br>
<b>To:</b> Discussion of IronPython<br>
<b>Subject:</b> Re: [IronPython] Safe execution of python scripts on my .net
application</p>

</div>

</div>

</div>

</div>

<div>

<div>

<p class="MsoNormal"> </p>

<div>

<p class="MsoNormal">Again,
thanks everyone for your help.</p>

</div>

<div>

<p class="MsoNormal"> </p>

</div>

<p class="MsoNormal">But..
I bring bad news. This is still not working and it doesn&#39;t depend on the Test
environment.</p>

<div>

<p class="MsoNormal"> </p>

</div>

<div>

<p class="MsoNormal">I
create another proyect, a Form project, with one button which executes the
following code:</p>

</div>

<div>

<p class="MsoNormal"> </p>

</div>

<div>

<div>

<p class="MsoNormal"> //
Creating the permission set to grant other assemblies</p>

</div>

<div>

<p class="MsoNormal">PermissionSet
aRestrictedPermissionSet = new PermissionSet(PermissionState.None);</p>

</div>

<div>

<p class="MsoNormal">aRestrictedPermissionSet.AddPermission(new
SecurityPermission(SecurityPermissionFlag.Execution));</p>

</div>

<div>

<p class="MsoNormal"> </p>

</div>

<div>

<p class="MsoNormal">AppDomainSetup
domaininfo = new AppDomainSetup();</p>

</div>

<div>

<p class="MsoNormal">domaininfo.ApplicationBase
= System.Environment.CurrentDirectory;</p>

</div>

<div>

<p class="MsoNormal"> </p>

</div>

<div>

<p class="MsoNormal">List&lt;StrongName&gt;
strongNameList = new List&lt;StrongName&gt;();</p>

</div>

<div>

<p class="MsoNormal">strongNameList.Add(CreateStrongName(Assembly.GetExecutingAssembly()));</p>

</div>

<div>

<p class="MsoNormal">  
         </p>

</div>

<div>

<p class="MsoNormal">AppDomain
aSandboxedDomain = AppDomain.CreateDomain(&quot;Sandboxed Domain&quot;,</p>

</div>

<div>

<p class="MsoNormal">  
                     
                     
                     
                   
 AppDomain.CurrentDomain.Evidence,</p>

</div>

<div>

<p class="MsoNormal">  
                     
                     
                   
                     
 domaininfo,</p>

</div>

<div>

<p class="MsoNormal">  
                     
                     
                   
                     
 aRestrictedPermissionSet,</p>

</div>

<div>

<p class="MsoNormal">  
                     
                     
                   
                     
 strongNameList.ToArray&lt;StrongName&gt;());</p>

</div>

<div>

<p class="MsoNormal"> </p>

</div>

<div>

<p class="MsoNormal">ScriptEngine
engine = Python.CreateEngine(aSandboxedDomain);</p>

</div>

<div>

<p class="MsoNormal">ScriptSource
source = engine.CreateScriptSourceFromString(pythonScript);</p>

</div>

<div>

<p class="MsoNormal">ScriptScope
scope = engine.CreateScope();</p>

</div>

<div>

<p class="MsoNormal">source.Execute(scope);</p>

</div>

</div>

<div>

<p class="MsoNormal"> </p>

</div>

<div>

<p class="MsoNormal">It
throws this error:</p>

</div>

<div>

<p class="MsoNormal">Type
is not resolved for member
&#39;Microsoft.Scripting.Hosting.ScriptRuntimeSetup,Microsoft.Scripting,
Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35&#39;.</p>

<div>

<p class="MsoNormal"> </p>

</div>

<div>

<p class="MsoNormal">I
used the <span style="font-size:11.5pt;color:#1F497D">fuslogvw </span><span style="color:black">application to see if the Microsoft.Scripting is loaded, an
it is.</span></p>

</div>

<div>

<p class="MsoNormal"> </p>

</div>

<div>

<p class="MsoNormal">What
seems strange for me is that anyone has tried this before. I hope to find some
more help here.</p>

</div>

<div>

<p class="MsoNormal"> </p>

</div>

<div>

<p class="MsoNormal">Regards,</p>

</div>

<div>

<p class="MsoNormal">Nicolas</p>

</div>

<div>

<p class="MsoNormal"> </p>

</div>

<div>

<p class="MsoNormal"> </p>

<div>

<p class="MsoNormal">On
Wed, Nov 4, 2009 at 7:36 PM, Shri Borde &lt;<a href="mailto:Shri.Borde@microsoft.com" target="_blank">Shri.Borde@microsoft.com</a>&gt;
wrote:</p>

<div>

<div>

<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D"><a href="http://www.dev102.com/2008/03/22/3-ways-to-run-nunit-from-visual-studio/" target="_blank">http://www.dev102.com/2008/03/22/3-ways-to-run-nunit-from-visual-studio/</a>
has some info about test projects and appbase problems.</span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D"> </span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">You can also use fuslogvw (<a href="http://msdn.microsoft.com/en-us/library/e74a18c4%28VS.71%29.aspx%29" target="_blank">http://msdn.microsoft.com/en-us/library/e74a18c4(VS.71).aspx)</a>
to see why Microsoft.Scripting.dll is failing to load.</span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D"> </span></p>

<div>

<div style="border:none;border-top:solid windowtext 1.0pt;padding:3.0pt 0in 0in 0in;border-color:-moz-use-text-color -moz-use-text-color">

<p class="MsoNormal"><b><span style="font-size:10.0pt">From:</span></b><span style="font-size:10.0pt"> <a href="mailto:users-bounces@lists.ironpython.com" target="_blank">users-bounces@lists.ironpython.com</a>
[mailto:<a href="mailto:users-bounces@lists.ironpython.com" target="_blank">users-bounces@lists.ironpython.com</a>]
<b>On Behalf Of </b>Dino Viehland<br>
<b>Sent:</b> Tuesday, November 03, 2009 1:52 PM</span></p>

<div>

<div>

<p class="MsoNormal"><br>
<b>To:</b> Discussion of IronPython<br>
<b>Subject:</b> Re: [IronPython] Safe execution of python scripts on my .net application</p>

</div>

</div>

</div>

</div>

<div>

<div>

<p class="MsoNormal"> </p>

<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">Test projects are weird and somehow you
don’t end up inheriting the application base.  This seems to work though:</span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D"> </span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D"> 
          AppDomainSetup
setup = new AppDomainSetup();</span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">           
setup.ApplicationBase = AppDomain.CurrentDomain.BaseDirectory;</span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">           
AppDomain aSandboxedDomain = AppDomain.CreateDomain(&quot;Sandboxed
Domain&quot;, null, setup);</span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">           
ScriptEngine engine = Python.CreateEngine(aSandboxedDomain);</span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">           
ScriptSource source = engine.CreateScriptSourceFromString(&quot;2+2&quot;);</span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">           
ScriptScope scope = engine.CreateScope();</span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">           
Console.WriteLine(source.Execute(scope));</span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D"> </span></p>

<div style="border:none;border-left:solid windowtext 1.5pt;padding:0in 0in 0in 4.0pt;border-color:-moz-use-text-color -moz-use-text-color -moz-use-text-color blue">

<div>

<div style="border:none;border-top:solid windowtext 1.0pt;padding:3.0pt 0in 0in 0in;border-color:-moz-use-text-color -moz-use-text-color">

<p class="MsoNormal"><b><span style="font-size:10.0pt">From:</span></b><span style="font-size:10.0pt"> <a href="mailto:users-bounces@lists.ironpython.com" target="_blank">users-bounces@lists.ironpython.com</a>
[mailto:<a href="mailto:users-bounces@lists.ironpython.com" target="_blank">users-bounces@lists.ironpython.com</a>]
<b>On Behalf Of </b>Nicolás Buttarelli<br>
<b>Sent:</b> Tuesday, November 03, 2009 1:30 PM<br>
<b>To:</b> Discussion of IronPython<br>
<b>Subject:</b> Re: [IronPython] Safe execution of python scripts on my .net
application</span></p>

</div>

</div>

<p class="MsoNormal"> </p>

<p class="MsoNormal">I
have create a new &quot;Test Project&quot; and an Unit Test class in order to
test the following code inside:</p>

<div>

<p class="MsoNormal"> </p>

</div>

<div>

<div>

<p class="MsoNormal">AppDomain
aSandboxedDomain = AppDomain.CreateDomain(&quot;Sandboxed Domain&quot;);</p>

</div>

<div>

<p class="MsoNormal">ScriptEngine
engine = Python.CreateEngine(aSandboxedDomain);</p>

</div>

<div>

<p class="MsoNormal">ScriptSource
source = engine.CreateScriptSourceFromString(pythonScript);</p>

</div>

<div>

<p class="MsoNormal">ScriptScope
scope = engine.CreateScope();</p>

</div>

<div>

<p class="MsoNormal">source.Execute(scope);</p>

</div>

<div>

<p class="MsoNormal"> </p>

</div>

<div>

<p class="MsoNormal"> </p>

</div>

<p class="MsoNormal">I
have add the references:</p>

</div>

<div>

<p class="MsoNormal"> </p>

</div>

<div>

<p class="MsoNormal">-
IronPython</p>

</div>

<div>

<p class="MsoNormal">-
Microsoft.Scripting</p>

</div>

<div>

<p class="MsoNormal">-
Microsoft.ScriptingCore</p>

</div>

<div>

<p class="MsoNormal"> </p>

</div>

<div>

<p class="MsoNormal">But
it still not working and throwing the
same System.Runtime.Serialization.SerializationException: Type is not
resolved for member
&#39;Microsoft.Scripting.Hosting.ScriptRuntimeSetup,Microsoft.Scripting.</p>

</div>

<div>

<p class="MsoNormal"> </p>

</div>

<div>

<p class="MsoNormal">Any
ideas?</p>

</div>

<div>

<p class="MsoNormal"> </p>

</div>

<div>

<p class="MsoNormal"> </p>

<div>

<p class="MsoNormal">2009/11/3
Nicolás Buttarelli &lt;<a href="mailto:nbuttarelli@gmail.com" target="_blank">nbuttarelli@gmail.com</a>&gt;</p>

<p class="MsoNormal">Thanks
Shri, I will try.</p>

<div>

<p class="MsoNormal"> </p>

</div>

<div>

<p class="MsoNormal">In
addition, I found this open issue: <a href="http://dlr.codeplex.com/WorkItem/View.aspx?WorkItemId=2816" target="_blank">http://dlr.codeplex.com/WorkItem/View.aspx?WorkItemId=2816</a>.
I think that it is related.</p>

<div>

<div>

<p class="MsoNormal" style="margin-bottom:12.0pt"> </p>

<div>

<p class="MsoNormal">On
Tue, Nov 3, 2009 at 9:29 PM, Shri Borde &lt;<a href="mailto:Shri.Borde@microsoft.com" target="_blank">Shri.Borde@microsoft.com</a>&gt;
wrote:</p>

<div>

<div>

<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">I think this happens if the new
appdomain cannot load the required assembly. By default, the new appdomain
should inherit its BaseDirectory property from the creating domain and should
be able to load Microsoft.Scripting.dll. Is your exe and all the dlls in the
same folder? If not, can you try to put all assemblies in the same folder (or
in the GAC) to see if it works? If that works, you can then figure out how to
configure the new appdomain such that it can load Microsoft.Scripting.dll.
There may be some setting in AppDomainSetup, or you could hook the
AssemblyResolve event…</span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D"> </span></p>

<div style="border:none;border-top:solid windowtext 1.0pt;padding:3.0pt 0in 0in 0in;border-color:-moz-use-text-color -moz-use-text-color">

<p class="MsoNormal"><b><span style="font-size:10.0pt">From:</span></b><span style="font-size:10.0pt"> <a href="mailto:users-bounces@lists.ironpython.com" target="_blank">users-bounces@lists.ironpython.com</a>
[mailto:<a href="mailto:users-bounces@lists.ironpython.com" target="_blank">users-bounces@lists.ironpython.com</a>]
<b>On Behalf Of </b>Nicolás Buttarelli<br>
<b>Sent:</b> Tuesday, November 03, 2009 12:08 PM</span></p>

<div>

<div>

<p class="MsoNormal"><br>
<b>To:</b> Discussion of IronPython<br>
<b>Subject:</b> Re: [IronPython] Safe execution of python scripts on my .net
application</p>

</div>

</div>

</div>

<div>

<div>

<p class="MsoNormal"> </p>

<p class="MsoNormal">Hi
again, thanks for your clear response.</p>

<div>

<p class="MsoNormal"> </p>

</div>

<div>

<p class="MsoNormal">I
was trying to do what you proposed but it is not working. I am
receiving an exception:</p>

</div>

<div>

<p class="MsoNormal"> </p>

</div>

<div>

<p class="MsoNormal" style="margin-bottom:12.0pt"><i>Test
method CadworX3WCFRestTest.IronPython.SafeScriptExecutionTest.writingAFileTest
threw exception:  System.Runtime.Serialization.SerializationException:
Type is not resolved for member
&#39;Microsoft.Scripting.Hosting.ScriptRuntimeSetup,Microsoft.Scripting,
Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35&#39;..</i></p>

</div>

<div>

<p class="MsoNormal">I
tried to find a solution but I couldn&#39;t. This is the minimal code that I am
running to get this exception (I have removed all the security stuff but
apparently that does not resolve the problem):</p>

</div>

<div>

<p class="MsoNormal"> </p>

</div>

<div>

<div>

<p class="MsoNormal"><i>AppDomain
aSandboxedDomain = AppDomain.CreateDomain(&quot;Sandboxed Domain&quot;);</i></p>

</div>

<div>

<p class="MsoNormal"> </p>

</div>

<div>

<p class="MsoNormal"><i>ScriptEngine
engine = Python.CreateEngine(aSandboxedDomain);</i></p>

</div>

<div>

<p class="MsoNormal"><i>ScriptSource
source = engine.CreateScriptSourceFromString(pythonScript);</i></p>

</div>

<div>

<p class="MsoNormal"><i>SriptScope
scope = engine.CreateScope();</i></p>

</div>

<div>

<p class="MsoNormal"><i>source.Execute(scope);</i></p>

</div>

<div>

<p class="MsoNormal"> </p>

</div>

<div>

<p class="MsoNormal">The
exception is thronged in this line: </p>

</div>

<div>

<p class="MsoNormal"><i>ScriptEngine
engine = Python.CreateEngine(aSandboxedDomain);</i></p>

</div>

<div>

<p class="MsoNormal"> </p>

</div>

<div>

<p class="MsoNormal"> </p>

</div>

<div>

<p class="MsoNormal">Do
you have any idea which could be the problem?</p>

</div>

<div>

<p class="MsoNormal"> </p>

</div>

<div>

<p class="MsoNormal">Thanks
again,</p>

</div>

<div>

<p class="MsoNormal">Nicolas</p>

</div>

<div>

<p class="MsoNormal"> </p>

</div>

<div>

<p class="MsoNormal">On
Mon, Nov 2, 2009 at 10:25 PM, Dino Viehland &lt;<a href="mailto:dinov@microsoft.com" target="_blank">dinov@microsoft.com</a>&gt;
wrote:</p>

<div>

<div>

<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">Assuming the app domain is setup
properly then there’s no way for the Python code to elevate permissions (modulo
CLR security bugs which are few and far between).  This is because
IronPython its self is 100% security transparent and does not affect any
security decisions or assert any form of trust – so it’s all up to the CLR to
limit permissions.  So for example while you can access the file object,
or import ctypes, or call various other Python APIs which would require trust
you’ll get a security exception from the CLR when you don’t have permissions to
do something.</span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D"> </span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">For more complex scenarios you might
also have an object model which you expose to the application and inject in via
its scope.  Once you’ve done that you’ll want to make sure that the object
model is also secure.</span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D"> </span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D"> </span></p>

<div style="border:none;border-left:solid windowtext 1.5pt;padding:0in 0in 0in 4.0pt;border-color:-moz-use-text-color -moz-use-text-color -moz-use-text-color blue">

<div>

<div style="border:none;border-top:solid windowtext 1.0pt;padding:3.0pt 0in 0in 0in;border-color:-moz-use-text-color -moz-use-text-color">

<p class="MsoNormal"><b><span style="font-size:10.0pt">From:</span></b><span style="font-size:10.0pt"> <a href="mailto:users-bounces@lists.ironpython.com" target="_blank">users-bounces@lists.ironpython.com</a>
[mailto:<a href="mailto:users-bounces@lists.ironpython.com" target="_blank">users-bounces@lists.ironpython.com</a>]
<b>On Behalf Of </b>Nicolás Buttarelli<br>
<b>Sent:</b> Monday, November 02, 2009 1:20 PM<br>
<b>To:</b> Discussion of IronPython<br>
<b>Subject:</b> Re: [IronPython] Safe execution of python scripts on my .net
application</span></p>

</div>

</div>

<div>

<div>

<p class="MsoNormal"> </p>

<p class="MsoNormal">Thanks
for your response.</p>

<div>

<p class="MsoNormal"> </p>

</div>

<div>

<p class="MsoNormal">But
what happens with the python code? Does not exist a way to write some
scripts that can do some damage to my app, the server, the database, etc?</p>

</div>

<div>

<p class="MsoNormal"> </p>

</div>

<div>

<p class="MsoNormal">Thanks
again,</p>

</div>

<div>

<p class="MsoNormal">Nicolas</p>

</div>

<div>

<p class="MsoNormal"> </p>

<div>

<p class="MsoNormal">On
Mon, Nov 2, 2009 at 9:41 PM, Dino Viehland &lt;<a href="mailto:dinov@microsoft.com" target="_blank">dinov@microsoft.com</a>&gt;
wrote:</p>

<div>

<div>

<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">After creating your app domain you can
do:</span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D"> </span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">ScriptEngine engine =
Python.CreateEngine(someAppDomain);</span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D"> </span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">And then the rest of your code should
work as it’s written.</span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D"> </span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D"> </span></p>

<div style="border:none;border-left:solid windowtext 1.5pt;padding:0in 0in 0in 4.0pt;border-color:-moz-use-text-color -moz-use-text-color -moz-use-text-color blue">

<div>

<div style="border:none;border-top:solid windowtext 1.0pt;padding:3.0pt 0in 0in 0in;border-color:-moz-use-text-color -moz-use-text-color">

<p class="MsoNormal"><b><span style="font-size:10.0pt">From:</span></b><span style="font-size:10.0pt"> <a href="mailto:users-bounces@lists.ironpython.com" target="_blank">users-bounces@lists.ironpython.com</a>
[mailto:<a href="mailto:users-bounces@lists.ironpython.com" target="_blank">users-bounces@lists.ironpython.com</a>]
<b>On Behalf Of </b>Nicolás Buttarelli<br>
<b>Sent:</b> Monday, November 02, 2009 12:39 PM<br>
<b>To:</b> <a href="mailto:users@lists.ironpython.com" target="_blank">users@lists.ironpython.com</a><br>
<b>Subject:</b> [IronPython] Safe execution of python scripts on my .net
application</span></p>

</div>

</div>

<div>

<div>

<p class="MsoNormal"> </p>

<div>

<p class="MsoNormal"><span style="font-size:10.0pt">Sorry, I don&#39;t know if my previous message have
arrived. So, here it is:</span></p>

</div>

<div>

<p class="MsoNormal"><span style="font-size:10.0pt"> </span></p>

</div>

<div>

<p class="MsoNormal"><span style="font-size:10.0pt"> </span></p>

</div>

<p class="MsoNormal"><span style="font-size:10.0pt">Hello all,</span></p>

<div>

<p class="MsoNormal"><span style="font-size:10.0pt"> </span></p>

</div>

<div>

<p class="MsoNormal"><span style="font-size:10.0pt">I am starting with python and I would like to add to
my web application some web services. This services will allow the different
clients of my application to execute some python scripts. </span></p>

</div>

<div>

<p class="MsoNormal"><span style="font-size:10.0pt"> </span></p>

</div>

<div>

<p class="MsoNormal"><span style="font-size:10.0pt">I would like to know if someone did this before and
how can I do this in a secure way. I mean, how can I do to restrict the
environment where the scripts will be executed. </span></p>

</div>

<div>

<p class="MsoNormal"><span style="font-size:10.0pt"> </span></p>

</div>

<div>

<p class="MsoNormal"><span style="font-size:10.0pt">In .net I can do this using the AppDoman and setting
the permission set.</span></p>

</div>

<div>

<p class="MsoNormal"><span style="font-size:10.0pt"> </span></p>

</div>

<div>

<p class="MsoNormal"><span style="font-size:10.0pt;font-family:&quot;Courier New&quot;;color:#333333">AppDomain.CreateDomain( </span><span style="font-size:10.0pt;font-family:&quot;Courier New&quot;;color:blue">string</span><span style="font-size:10.0pt;font-family:&quot;Courier New&quot;;color:#333333"> friendlyName,<br>

                        Evidence
securityInfo,<br>
                        AppDomainSetup
info,<br>
                        PermissionSet
grantSet,<br>
                        </span><span style="font-size:10.0pt;font-family:&quot;Courier New&quot;;color:blue">params</span><span style="font-size:10.0pt;font-family:&quot;Courier New&quot;;color:#333333"> StrongName[]
fullTrustAssemblies);</span></p>

</div>

<div>

<p class="MsoNormal"><span style="font-size:10.0pt"> </span></p>

</div>

<div>

<p class="MsoNormal"><span style="font-size:10.0pt"> </span></p>

</div>

<div>

<p class="MsoNormal"><span style="font-size:10.0pt">Is there a way to do the same with my python
scripts? </span></p>

</div>

<div>

<p class="MsoNormal"><span style="font-size:10.0pt"> </span></p>

</div>

<div>

<p class="MsoNormal"><span style="font-size:10.0pt">I am running them using this:</span></p>

</div>

<div>

<p class="MsoNormal"><span style="font-size:10.0pt"> </span></p>

</div>

<div>

<div>

<p class="MsoNormal"><span style="font-size:10.0pt">ScriptEngine engine = Python.CreateEngine();</span></p>

</div>

<div>

<p class="MsoNormal"><span style="font-size:10.0pt">ScriptSource source =
engine.CreateScriptSourceFromString(scriptAsString);</span></p>

</div>

<div>

<p class="MsoNormal"><span style="font-size:10.0pt">ScriptScope scope = engine.CreateScope();</span></p>

</div>

<div>

<p class="MsoNormal"><span style="font-size:10.0pt">source.Execute(scope);</span></p>

</div>

<div>

<p class="MsoNormal"><span style="font-size:10.0pt"> </span></p>

</div>

<div>

<p class="MsoNormal"><span style="font-size:10.0pt">Thanks in advance.</span></p>

</div>

<div>

<p class="MsoNormal"><span style="font-size:10.0pt">Nicolas</span></p>

</div>

</div>

</div>

</div>

</div>

</div>

</div>

<p class="MsoNormal" style="margin-bottom:12.0pt"><br>
_______________________________________________<br>
Users mailing list<br>
<a href="mailto:Users@lists.ironpython.com" target="_blank">Users@lists.ironpython.com</a><br>
<a href="http://lists.ironpython.com/listinfo.cgi/users-ironpython.com" target="_blank">http://lists.ironpython.com/listinfo.cgi/users-ironpython.com</a></p>

</div>

<p class="MsoNormal"> </p>

</div>

</div>

</div>

</div>

</div>

</div>

<p class="MsoNormal" style="margin-bottom:12.0pt"><br>
_______________________________________________<br>
Users mailing list<br>
<a href="mailto:Users@lists.ironpython.com" target="_blank">Users@lists.ironpython.com</a><br>
<a href="http://lists.ironpython.com/listinfo.cgi/users-ironpython.com" target="_blank">http://lists.ironpython.com/listinfo.cgi/users-ironpython.com</a></p>

</div>

<p class="MsoNormal"> </p>

</div>

</div>

</div>

</div>

</div>

<p class="MsoNormal" style="margin-bottom:12.0pt"><br>
_______________________________________________<br>
Users mailing list<br>
<a href="mailto:Users@lists.ironpython.com" target="_blank">Users@lists.ironpython.com</a><br>
<a href="http://lists.ironpython.com/listinfo.cgi/users-ironpython.com" target="_blank">http://lists.ironpython.com/listinfo.cgi/users-ironpython.com</a></p>

</div>

<p class="MsoNormal"> </p>

</div>

</div>

</div>

</div>

<p class="MsoNormal"> </p>

</div>

</div>

</div>

</div>

</div>

</div>

<p class="MsoNormal" style="margin-bottom:12.0pt"><br>
_______________________________________________<br>
Users mailing list<br>
<a href="mailto:Users@lists.ironpython.com" target="_blank">Users@lists.ironpython.com</a><br>
<a href="http://lists.ironpython.com/listinfo.cgi/users-ironpython.com" target="_blank">http://lists.ironpython.com/listinfo.cgi/users-ironpython.com</a></p>

</div>

<p class="MsoNormal"> </p>

</div>

</div>

</div>

</div>

</div>

</div>

</div>

<p class="MsoNormal" style="margin-bottom:12.0pt"><br>
_______________________________________________<br>
Users mailing list<br>
<a href="mailto:Users@lists.ironpython.com" target="_blank">Users@lists.ironpython.com</a><br>
<a href="http://lists.ironpython.com/listinfo.cgi/users-ironpython.com" target="_blank">http://lists.ironpython.com/listinfo.cgi/users-ironpython.com</a></p>

</blockquote>

</div>

</div>

</div>

<p class="MsoNormal"> </p>

</div>

<p class="MsoNormal"> </p>

</div>

</div></div></div>

</div>

</div>


<br>_______________________________________________<br>
Users mailing list<br>
<a href="mailto:Users@lists.ironpython.com">Users@lists.ironpython.com</a><br>
<a href="http://lists.ironpython.com/listinfo.cgi/users-ironpython.com" target="_blank">http://lists.ironpython.com/listinfo.cgi/users-ironpython.com</a><br>
<br></blockquote></div><br></div>