URL: https://www.overclockers.at/coding-stuff/net_aendern_von_permissions_bei_ner_geladenen_appd_200726/page_1 - zur Vollversion wechseln!
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: PHPPermissionSet 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);
Hast du dir schon mal AppDomain.ApplicationTrust.DefaultGrantSet angeschaut.
also so ca.
Code: PHPPermissionSet newPermissionSet= new PermissionSet(PermissionState.None); newPermissionSet.AddPermission(new SecurityPermission(SecurityPermissionFlag.AllFlags)); NewAppDomain.ApplicationTrust.DefaultGrantSet = new PolicyStatement(newPermissionSet);
Danke, zieht aber leider ned... ich denke das geht nur, wenn ich fuer diese appdomain noch kein permissionset angegeben hab beim erstellen.Zitat von Triple-XHast du dir schon mal AppDomain.ApplicationTrust.DefaultGrantSet angeschaut.
also so ca.Code: PHPPermissionSet 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.
Code: PHPo.WriteNumber(9); PermissionSet ps2 = new PermissionSet(PermissionState.None); NewAppDomain.ApplicationTrust.DefaultGrantSet = new PolicyStatement(ps2); o.WriteNumber(9);
overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2025