.NET: Ändern von Permissions bei ner geladenen AppDomain

Seite 1 von 1 - Forum: Coding Stuff auf overclockers.at

URL: https://www.overclockers.at/coding-stuff/net_aendern_von_permissions_bei_ner_geladenen_appd_200726/page_1 - zur Vollversion wechseln!


semteX schrieb am 16.10.2008 um 16:08

Ich hab folgendes problem:

Ich mach ne appdomain auf, instanziere in diesem appdomain ne klasse. Das ding ist also geladen und rennt. Jetzt will ich von dieser AppDomain die Rechte ändern (sind standardmäßig auf "execute only", also keine hdd, kein netzwerk, nix)...

erstellen vom appdomain geschieht so:

Code: PHP
PermissionSet pset = new PermissionSet(PermissionState.None);
pset.AddPermission(new SecurityPermission(SecurityPermissionFlag.Execution));

System.AppDomain NewAppDomain = null;
AppDomainSetup setup = new AppDomainSetup();
setup.ApplicationBase = AppDomain.CurrentDomain.SetupInformation.ApplicationBase;

NewAppDomain = AppDomain.CreateDomain("blabla", AppDomain.CurrentDomain.Evidence, setup, pset, CreateStrongName(Assembly.GetExecutingAssembly()));

RemoteObject o = (RemoteObject) NewAppDomain.CreateInstanceFromAndUnwrap(@"C:\Public\HelloWorldRemote.dll", "HelloWorldRemote.RemoteObject");

o.WriteNumber(9);

jetzt würde ich gerne für die Appdomain NewAppDomain die permissions ändern...

weiß wer, ob das geht? wir vermuten im moment stark in richtung "nein, es geht ned", aber etwas fixes wär toll.

fw ist .net 3.5 sp1

thx
semteX


Triple-X schrieb am 16.10.2008 um 17:14

Hast du dir schon mal AppDomain.ApplicationTrust.DefaultGrantSet angeschaut.

also so ca.

Code: PHP
PermissionSet newPermissionSet= new PermissionSet(PermissionState.None);
newPermissionSet.AddPermission(new SecurityPermission(SecurityPermissionFlag.AllFlags)); 

NewAppDomain.ApplicationTrust.DefaultGrantSet = new PolicyStatement(newPermissionSet);

Habs nicht ausprobiert obs funktioniert, ich hoffe das es dich weiter bringt.


semteX schrieb am 16.10.2008 um 19:31

Zitat von Triple-X
Hast du dir schon mal AppDomain.ApplicationTrust.DefaultGrantSet angeschaut.

also so ca.
Code: PHP
PermissionSet newPermissionSet= new PermissionSet(PermissionState.None);
newPermissionSet.AddPermission(new SecurityPermission(SecurityPermissionFlag.AllFlags)); 

NewAppDomain.ApplicationTrust.DefaultGrantSet = new PolicyStatement(newPermissionSet);

Habs nicht ausprobiert obs funktioniert, ich hoffe das es dich weiter bringt.
Danke, zieht aber leider ned... ich denke das geht nur, wenn ich fuer diese appdomain noch kein permissionset angegeben hab beim erstellen.

Code: PHP
      o.WriteNumber(9);
      PermissionSet ps2 = new PermissionSet(PermissionState.None);
      NewAppDomain.ApplicationTrust.DefaultGrantSet = new PolicyStatement(ps2);
      o.WriteNumber(9);

läuft leider durch :/




overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2024