RE: Assembly loaded from URL needs to read registry - but can't
From: Jan Petras (JanPetras_at_discussions.microsoft.com)
Date: 02/25/05
- Next message: Jan Petras: "RE: Application Pool & Mail Security"
- Previous message: gkelly: "Assembly loaded from URL needs to read registry - but can't"
- In reply to: gkelly: "Assembly loaded from URL needs to read registry - but can't"
- Next in thread: Shawn Farkas [MS]: "RE: Assembly loaded from URL needs to read registry - but can't"
- Reply: Shawn Farkas [MS]: "RE: Assembly loaded from URL needs to read registry - but can't"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ] [ attachment ]
Date: Thu, 24 Feb 2005 22:39:03 -0800
What I would do is that I would modify enterprise policy on the server to
indicate that any code comming from \\yourserver\yourdirectorywithdlls\* is
FullTrust. Then, don't worry about creating evidence and all that. Or, sign
the assemblies with your public key and modify enterprise policy that any
assembly signed with code with that public key is of "Full Trust" level...
Generally, play around with caspol.exe (or MMC snapin) to get what you need.
There may be other solutions as well, I would try this first.
Regards,
JnP76
"gkelly" wrote:
> I have a set of applications that use a common assembly library.
>
> AppA, AppB and AppC all use LibA and LibB
>
> These will run on about 25 computers.
>
> AppA and LibA need to read registry to determine database connect string to
> use and other misc config stuff
>
> For a while anyway, all code will be updated periodically. So, I decided
> place code on our web server.
>
> Instead of AppA and AppB being "Windows Applications" I changed them to
> Class Libraries.
>
> I created a Launcher App that will use Assembly.LoadFrom to load from a url
> like http://server/applib/AppA.dll
>
> However, since code loaded this way runs in a different context I get an
> error error such as:
>
> Request for the permission of type
> System.Security.Permissions.RegistryPermission failed..
>
> I have read about this and somewhat understand the issues involved.
>
> Question: Is there a "simple" way to load a dll from a URL and have it run
> with the same permission as code that was
> loaded locally?
>
> I thought the following would work, but it doesnt. Same error happens. So,
> obviously my understanding is very limited.
>
> Evidence ev = new Evidence();
> ev.Merge( AppDomain.CurrentDomain.Evidence );
> ev.AddHost( new Zone( SecurityZone.MyComputer ));
> Assembly v_assembly = Assembly.LoadFrom( "http://server/applib/AppA.dll",
> ev );
>
> when creating an object instance from this assembly it still can't read the
> registry. I "thought" this would load the assembly so that's
> it's code would run with same permissions as the launcher. It doesn't.
>
> Any help would be appreciated.
>
> gkelly
>
>
>
- Next message: Jan Petras: "RE: Application Pool & Mail Security"
- Previous message: gkelly: "Assembly loaded from URL needs to read registry - but can't"
- In reply to: gkelly: "Assembly loaded from URL needs to read registry - but can't"
- Next in thread: Shawn Farkas [MS]: "RE: Assembly loaded from URL needs to read registry - but can't"
- Reply: Shawn Farkas [MS]: "RE: Assembly loaded from URL needs to read registry - but can't"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ] [ attachment ]
Relevant Pages
|