Re: Appdomain.CreateDomain throws SecurityException

From: Praisy (Praisy_at_discussions.microsoft.com)
Date: 06/22/05

  • Next message: Richard Morris: "Graphics.GetHdc causes InvalidOperationException"
    Date: Wed, 22 Jun 2005 05:46:02 -0700
    
    

    Yes, my problem got solved with process.start.
    I wonder if this is the recomended solution.
    are there any drawbacks with this approach??

    "Nicole Calinoiu" wrote:

    > You'll need to run at the unsafe level to call Process.Start successfully.
    >
    >
    > "Praisy" <Praisy@discussions.microsoft.com> wrote in message
    > news:8C1D9EBF-D9D0-44FF-81F4-98F68F386F88@microsoft.com...
    > > Nicole,
    > > Thanks for the link.. I'l post this question to the beta newsgroups that
    > > you
    > > mentioned.
    > > I tried using System.diagnostics.Process.Start() which threw
    > > SecurityException as follows
    > >
    > > System.Security.SecurityException: Request failed.
    > > System.Security.SecurityException:
    > > at
    > > System.Security.CodeAccessSecurityEngine.ThrowSecurityException(Assembly
    > > asm,
    > > PermissionSet granted, PermissionSet refused, RuntimeMethodHandle rmh,
    > > SecurityAction action, Object demand, IPermission permThatFailed)
    > > at
    > > System.Security.CodeAccessSecurityEngine.ThrowSecurityException(Object
    > > assemblyOrString, PermissionSet granted, PermissionSet refused,
    > > RuntimeMethodHandle rmh, SecurityAction action, Object demand, IPermission
    > > permThatFailed)
    > > at System.Security.CodeAccessSecurityEngine.CheckSetHelper(PermissionSet
    > > grants, PermissionSet refused, PermissionSet demands, RuntimeMethodHandle
    > > rmh, Object assemblyOrString, SecurityAction action, Boolean
    > > throwException)
    > > at
    > > System.Security.CodeAccessSecurityEngine.CheckSetHelper(CompressedStack
    > > cs,
    > > PermissionSet grants, PermissionSet refused, PermissionSet demands,
    > > RuntimeMethodHandle rmh, Assembly asm, SecurityAction action)
    > > at StoredProcedures.SPInsertTest()
    > >
    > > "Nicole Calinoiu" wrote:
    > >
    > >> "Praisy" <Praisy@discussions.microsoft.com> wrote in message
    > >> news:B18265E8-0152-4E87-8278-147945E8DDAC@microsoft.com...
    > >> <snip>
    > >> > Is it possible to create appdomains in the managed stored procedure?
    > >>
    > >> From what I've seen written about the SQL CLR hosting model, I would
    > >> guess
    > >> that the designers' intent is probably to prevent any creation of app
    > >> domains by user code. However, the official documentation is quite vague
    > >> on
    > >> this topic, so you might want to ask about it in the beta newsgroups at
    > >> http://communities.microsoft.com/newsgroups/default.asp?icp=sqlserver2005&slcid=us.
    > >>
    > >>
    > >> > As I have explained my problem above, is there any other way to do
    > >> > this?
    > >>
    > >> If you are the author of the target DLLs, the cleanest approach might be
    > >> to
    > >> modify the DLLs so that they can read the relevant data from a source
    > >> specified by the caller, falling back to the default config file if no
    > >> other
    > >> source is specified. If this isn't an option, would launching the exe
    > >> via
    > >> System.Diagnostics.Process.Start offer sufficient control for your
    > >> purposes?
    > >>
    > >>
    > >>
    > >> > Your help is highly appreciated.
    > >> > Thanks in advance,
    > >> >
    > >> > "Nicole Calinoiu" wrote:
    > >> >
    > >> >> Even if you could get past this exception, you would block on the next
    > >> >> line
    > >> >> since the SQL CLR host blocks the necessary call. Might it be
    > >> >> possible
    > >> >> to
    > >> >> alter your target assembly so that the call can be made as a simple
    > >> >> method
    > >> >> invocation?
    > >> >>
    > >> >>
    > >> >>
    > >> >> "Praisy" <Praisy@discussions.microsoft.com> wrote in message
    > >> >> news:107A2752-4FDE-43B5-86D2-3506052BB057@microsoft.com...
    > >> >> > Hi Nicole,
    > >> >> > Follwoing is the code that generates this exception
    > >> >> >
    > >> >> > public static void SPInsertTest()
    > >> >> > {
    > >> >> > AppDomainSetup ads = new AppDomainSetup();
    > >> >> > ads.ApplicationBase = @"C:\SPTestExe";
    > >> >> > ads.ConfigurationFile =
    > >> >> > @"C:\SPTestExe\TestAppExe.exe.config";
    > >> >> > AppDomain ad = AppDomain.CreateDomain("TestApp", null, ads);
    > >> >> > ad.ExecuteAssembly(@"c:\SPTestExe\TestAppExe.exe");
    > >> >> > }
    > >> >> >
    > >> >> > "Nicole Calinoiu" wrote:
    > >> >> >
    > >> >> >> What is the code for the version of SPInsertTest that generates
    > >> >> >> this
    > >> >> >> exception?
    > >> >> >>
    > >> >> >>
    > >> >> >> "Praisy" <Praisy@discussions.microsoft.com> wrote in message
    > >> >> >> news:F83105AF-E82B-481B-A231-5E1948545CCF@microsoft.com...
    > >> >> >> > Hi!
    > >> >> >> > Thanks for the info. While creating the assembly in SQLServer
    > >> >> >> > 2005,
    > >> >> >> > I
    > >> >> >> > had
    > >> >> >> > set the PERMISSION_SET to EXTERNAL_ACCESS during which I got the
    > >> >> >> > security
    > >> >> >> > Exception. Now I changed to UNSAFE and got the TypeLoadException
    > >> >> >> > as
    > >> >> >> > follows.
    > >> >> >> >
    > >> >> >> > System.TypeLoadException: The domain manager specified by the
    > >> >> >> > host
    > >> >> >> > could
    > >> >> >> > not
    > >> >> >> > be instantiated.
    > >> >> >> > at System.AppDomain.nCreateDomain(String friendlyName,
    > >> >> >> > AppDomainSetup
    > >> >> >> > setup, Evidence providedSecurityInfo, Evidence
    > >> >> >> > creatorsSecurityInfo,
    > >> >> >> > IntPtr
    > >> >> >> > parentSecurityDescriptor)
    > >> >> >> > at System.AppDomainManager.CreateDomainHelper(String
    > >> >> >> > friendlyName,
    > >> >> >> > Evidence securityInfo, AppDomainSetup appDomainInfo)
    > >> >> >> > at System.AppDomainManager.CreateDomain(String friendlyName,
    > >> >> >> > Evidence
    > >> >> >> > securityInfo, AppDomainSetup appDomainInfo)
    > >> >> >> > at System.AppDomain.CreateDomain(String friendlyName, Evidence
    > >> >> >> > securityInfo, AppDomainSetup info)
    > >> >> >> > at StoredProcedures.SPInsertTest()
    > >> >> >> >
    > >> >> >> > Any idea what can be the reason??
    > >> >> >> > Thanks,
    > >> >> >> >
    > >> >> >> >
    > >> >> >> > "Nicole Calinoiu" wrote:
    > >> >> >> >
    > >> >> >> >> SQL Server 2005 imposes additional permission restrictions on
    > >> >> >> >> managed
    > >> >> >> >> code
    > >> >> >> >> that it hosts. For an introduction to this topic, take a look
    > >> >> >> >> at
    > >> >> >> >> the
    > >> >> >> >> "CLR
    > >> >> >> >> Integration Security" topic in the BOL.
    > >> >> >> >>
    > >> >> >> >>
    > >> >> >> >> "Praisy" <Praisy@discussions.microsoft.com> wrote in message
    > >> >> >> >> news:42EA4E5E-0B83-4EF3-9E0C-A74CA51A1BB0@microsoft.com...
    > >> >> >> >> > Hi,
    > >> >> >> >> > The following exception occured when I tried to create an
    > >> >> >> >> > appdomain.
    > >> >> >> >> > "System.Security.SecurityException: Request for the permission
    > >> >> >> >> > of
    > >> >> >> >> > type
    > >> >> >> >> > 'System.Security.Permissions.SecurityPermission, mscorlib,
    > >> >> >> >> > Version=2.0.0.0,
    > >> >> >> >> > Culture=neutral, PublicKeyToken=b77a5c561934e089' failed.
    > >> >> >> >> > at System.AppDomain.CreateDomain(String friendlyName,
    > >> >> >> >> > Evidence
    > >> >> >> >> > securityInfo, AppDomainSetup info)
    > >> >> >> >> > at StoredProcedures.SPInsertTest()
    > >> >> >> >> > The action that failed was:
    > >> >> >> >> > Demand
    > >> >> >> >> > The type of the first permission that failed was:
    > >> >> >> >> > System.Security.Permissions.SecurityPermission
    > >> >> >> >> > The Zone of the assembly that failed was:
    > >> >> >> >> > MyComputer "
    > >> >> >> >> >
    > >> >> >> >> > Let me explain what I have done.
    > >> >> >> >> >
    > >> >> >> >> > 1.I've created a class library by name TestApp which has a
    > >> >> >> >> > config
    > >> >> >> >> > file.
    > >> >> >> >> > I
    > >> >> >> >> > have method called Readconfig which reads from the config and
    > >> >> >> >> > puts
    > >> >> >> >> > the
    > >> >> >> >> > value
    > >> >> >> >> > in the file in some location. the readconfig method is called
    > >> >> >> >> > in
    > >> >> >> >> > the
    > >> >> >> >> > constructor of this class.
    > >> >> >> >> >
    > >> >> >> >> > 2. I've created an exe which refers the above calss libray and
    > >> >> >> >> > creates
    > >> >> >> >> > the
    > >> >> >> >> > object of the class present in it.
    > >> >> >> >> >
    > >> >> >> >> > 3. I've created a Managed stored procedure using the
    > >> >> >> >> > SQLServerProject
    > >> >> >> >> > in
    > >> >> >> >> > the
    > >> >> >> >> > whidbey. The stored procedure has the following code.
    > >> >> >> >> >
    > >> >> >> >> >
    > >> >> >> >> > AppDomainSetup ads = new AppDomainSetup();
    > >> >> >> >> > ads.ApplicationBase = @"C:\SPTestExe";
    > >> >> >> >> > ads.ConfigurationFile =
    > >> >> >> >> > @"C:\SPTestExe\TestAppExe.exe.config";
    > >> >> >> >> >
    > >> >> >> >> > //AppDomain ad = AppDomain.CreateDomain("TestApp",
    > >> >> >> >> > null,
    > >> >> >> >> > ads);
    > >> >> >> >> > AppDomain ad = AppDomain.CurrentDomain;
    > >> >> >> >> > ad.ExecuteAssembly(@"c:\SPTestExe\TestAppExe.exe");
    > >> >> >> >> >
    > >> >> >> >> > when I install this stored procedure in yukon and run it, I
    > >> >> >> >> > get
    > >> >> >> >> > the
    > >> >> >> >> > above
    > >> >> >> >> > mentioned exception.
    > >> >> >> >> >
    > >> >> >> >> > Not able to trace out the reason. Can anyone tel me what the
    > >> >> >> >> > problem
    > >> >> >> >> > is??
    > >> >> >> >> >
    > >> >> >> >> > Thanks,
    > >> >> >> >>
    > >> >> >> >>
    > >> >> >> >>
    > >> >> >>
    > >> >> >>
    > >> >> >>
    > >> >>
    > >> >>
    > >> >>
    > >>
    > >>
    > >>
    >
    >
    >


  • Next message: Richard Morris: "Graphics.GetHdc causes InvalidOperationException"

    Relevant Pages

    • Filesystemwatcher securityexception
      ... asm, PermissionSet granted, PermissionSet refused, RuntimeMethodHandle ... RuntimeMethodHandle rmh, SecurityAction action, Object demand, ... RuntimeMethodHandle rmh, Object assemblyOrString, SecurityAction action, ...
      (microsoft.public.dotnet.languages.csharp)
    • Re: Appdomain.CreateDomain throws SecurityException
      ... > PermissionSet granted, PermissionSet refused, RuntimeMethodHandle rmh, ... > RuntimeMethodHandle rmh, SecurityAction action, Object demand, IPermission ... so you might want to ask about it in the beta newsgroups at ...
      (microsoft.public.dotnet.security)
    • Re: how to grant the application the required permission?
      ... asm, PermissionSet granted, PermissionSet refused, RuntimeMethodHandle ... RuntimeMethodHandle rmh, SecurityAction action, Object demand, ...
      (microsoft.public.dotnet.security)
    • VS2005:Projekt zer-konfiguriert ....
      ... asm, PermissionSet granted, PermissionSet refused, RuntimeMethodHandle rmh, ... RuntimeMethodHandle rmh, SecurityAction action, Object demand, IPermission ... rmh, Object assemblyOrString, SecurityAction action, Boolean throwException) ...
      (microsoft.public.de.german.entwickler.dotnet.vb)
    • Re: Appdomain.CreateDomain throws SecurityException
      ... PermissionSet granted, PermissionSet refused, RuntimeMethodHandle rmh, ... RuntimeMethodHandle rmh, SecurityAction action, Object demand, IPermission ...
      (microsoft.public.dotnet.security)