Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

ProcessStartInfo i Security ??

[es] :: .NET :: ProcessStartInfo i Security ??

[ Pregleda: 3965 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Sandra_G
Aleksandra Glusac
Programer

Član broj: 66979
Poruke: 68
*.mediaworksit.net.

ICQ: 298551171


Profil

icon ProcessStartInfo i Security ??03.04.2006. u 09:38 - pre 218 meseci
Dakle, imam sledeci kod:

Code:

System.Diagnostics.Process start = new System.Diagnostics.Process();
            start.StartInfo.FileName = pathToEXE;
            start.StartInfo.Arguments = userid + " " + transfertype + " " + database + " " + documenttypeid + " " + sourcepath + " " + destinationpath + " " + server + " " + password;
            start.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Normal;
            start.StartInfo.UseShellExecute = false;

            start.Start();
            start.WaitForExit();


Medjutim, javlja mi sledecu gresku, i pretpostavljam da je zbog toga sto startovana aplikacija mora da prostupi bazi i pokupi neke podatke, a to se ne desava:

System.Security.SecurityException: Request for the permission of type 'System.Security.Permissions.SecurityPermission,
mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' failed.

Kako da pokrenutoj aplikaciji dodelim prava? Napomena - kada se ta aplikacija pokrene sama za sebe, sve "radi" OK.

U cemu je fazon?
The important thing is not to stop questioning. Curiosity has its own reason for existing. - Albert Einstein
 
Odgovor na temu

Shadowed
Vojvodina

Član broj: 649
Poruke: 12846



+4783 Profil

icon Re: ProcessStartInfo i Security ??03.04.2006. u 10:35 - pre 218 meseci
Na kojoj liniji ti prijavljuje tu gresku?
 
Odgovor na temu

Sandra_G
Aleksandra Glusac
Programer

Član broj: 66979
Poruke: 68
*.mediaworksit.net.

ICQ: 298551171


Profil

icon Re: ProcessStartInfo i Security ??03.04.2006. u 10:53 - pre 218 meseci
Otkrila sam - poenta je u tome sto UNC putanje i .NET se bas "ne slazu". Tj. po default-u, ne mozes da podignes .NET aplikaciju preko UNC putanje. Moras da podesis security za .NET framework u Administrative tools ili da podizes aplikaciju preko obicne putanje "c:\aplikacija.exe"...

Hvala u svakom slucaju!
The important thing is not to stop questioning. Curiosity has its own reason for existing. - Albert Einstein
 
Odgovor na temu

mmix
Miljan Mitrović
Profesorkin muz
Passau, Deutschland

SuperModerator
Član broj: 17944
Poruke: 6041



+4631 Profil

icon Re: ProcessStartInfo i Security ??04.04.2006. u 14:30 - pre 218 meseci
Citat:
Sandra_G: Otkrila sam - poenta je u tome sto UNC putanje i .NET se bas "ne slazu". Tj. po default-u, ne mozes da podignes .NET aplikaciju preko UNC putanje. Moras da podesis security za .NET framework u Administrative tools ili da podizes aplikaciju preko obicne putanje "c:\aplikacija.exe"...


To je po dizajnu .NET-a. Kod nema vise samo user security context, sad ima i Zone security context. I nije da se "ne slazu" Ti mozes da podignes assemly sa UNC-a (Intranet zona) ali taj kod nece imati pravo na neke operacije, kao sto je pokretanje drugih procesa. Ovo sam video na gomili mesta narocito tamo gde su se ranije preko UNC-a pokretale Delphi i VB6 aplikacije, pa se u .NET-u nastavlja sa istom praksom.
Ono sto si ti verovatno uradila je isto sto i svi ostali odmah urade a to je da si PermissionSet za LocalIntranet_Zone policy prebacila sa "Local Intranet" na "Full Trust" . Nazalost, to je veoma losa praksa, jer ta restrikcija postoji sa razlogom. Ispravna procedure da osposobis masinu da izvrsava tvoje aplikacije sa UNC-a kao da je sa lokalnog diska je:

1. Kreiras par kljuceva i izvuces javni kljuc iz tog para, koristeci sledece komande iz "Command prompt for visual studio":
Citat:

C:\>sn -k 1024 naskljuc.snk

Microsoft (R) .NET Framework Strong Name Utility Version 2.0.50727.42
Copyright (c) Microsoft Corporation. All rights reserved.

Key pair written to naskljuc.snk

C:\>sn -p naskljuc.snk naspublickljuc.pkey

Microsoft (R) .NET Framework Strong Name Utility Version 2.0.50727.42
Copyright (c) Microsoft Corporation. All rights reserved.

Public key written to naspublickljuc.pkey

C:\>sn -tp naspublickljuc.pkey

Microsoft (R) .NET Framework Strong Name Utility Version 2.0.50727.42
Copyright (c) Microsoft Corporation. All rights reserved.

Public key is
0024000004800000940000000602000000240000525341310004000001000100d959c89d5abe95
2460d3c93bfb6940d0c8c7fe0ad6c8447e44a396fef5ecc8c8772da5cfe3f5fcd9626fd8fe6b7e
5b2ad50c4ad43f584924905a0e91a2b30fa947a75f1cc3b65996624bfaf6d475b61a19d89f9275
3a9e8b74a750a53cfed223a3919adfc50cd09af6c177c0392473e63caf0e16877edd758f79b67e
fac504af


Public key token is bd75604112ad7a77


2. Od sad pa nadalje koristis naskljuc.snk da potpises SVE assemblije u tvom projektu/projektima. Za vise detalja o tome pogledaj "Signing assemblies" u MSDN-u

3. U .NET Framework Configuration lociras "LocalIntranet_Zone" u Machine Code Groups, rclick na nju i izaberi "New", to ce poceti wizard za kreiranje nove kodne grupe

4. Daj joj neko ime, i na sledecem ekranu izaberi kao condition "Strong Name", pojavice se text box sa nazivom "Public Key"

5. Selecktuj javni kljuc generisan gore (boldovao sam ga, ovde je 002400...., ti ces imati neki totalno drugaciji) kao jedan red (mozda ces morati da prvo pastujes u notepad i da uklonis prelom linija) i paste u "Public Key' polje. Opciono, ako vec imas assembly potpisan sa naskljuc.snk, mozes podatke da importujes sa "Improt", samo ne zaboravi da uklonis checkboxove za "Name" i "Version" (u suprotnom ce polisa vaziti samo za taj jedan assembly koji si importovala). Kliknes Next

6. Za Permission Set naravno izaberes existing: Full Trust.

I to je to. Ne samo da ce ova aplikacija raditi preko UNC-a nego i sve ostale koje napravis (posto ce biti potpisane istim kljucem), dok ce sve ostale, potencijalno stetne, aplikacije i dalje biti blokirane.

Za vece firme postoji opcija da se napravi MSI paket, takozvani GPO Update (Group Policy Object). U tom slucaju se gornji code group napravi na "Enterprise Code Group" nivou, a msi paket se formira po uputstvu na ovom linku: Deploying Security Policy. Domenski administrator onda samo treba da publikuje taj GPO msi tako da se startuje prvi put kad se neko uloguje na radnu stanicu.


[Ovu poruku je menjao mmix dana 04.04.2006. u 15:31 GMT+1]
Sloba je za 12 godina promenio antropološki kod srpskog naroda. On je od jednog naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan, sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv… - Z.Đinđić
 
Odgovor na temu

[es] :: .NET :: ProcessStartInfo i Security ??

[ Pregleda: 3965 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.