View Full Version : [C#/Urgente!] Richiesta di autorizzazione non soddisfatta per una libreria esterna?
Aiuto :cry:
Sto sviluppando un plugin per il live messenger...
Il problema è (come si evince dal titolo) che non riesco a richiedere le autorizzazioni adatte per accedere ai file (FileIOPermission) e per accedere alle cartelle speciali di sistema (EnvrironmentPermission).
Ho provato con
[assembly: FileIOPermission(SecurityAction.RequestMinimum)]
ma non va! :cry:
E' impossibile che non mi faccia accedere ai file del mio pc...
come dovrei impostare quell'attributo per richiedere le autorizzazioni??
Non c'è una cosa che dice al thread padre "dammi tutte le autorizzazioni, poi se effettivamente non ce le ho mi sollevi l'eccezione e finisce lì", per disattivare sto schifo di permessi che non mi fanno fare niente?
Grazie 1000 :doh:
Einstein
21-06-2007, 19:57
Probabilmente il tuo assembly gira in un code group che non permette l'accesso al disco. Con l'attributo RequestMinimum tu specifichi che permesso richiede l'assembly, ma non è detto che il runtime te lo assegni.
Verifica il code group di appartenenza, e magari assegna un code group più permissivo tramite il .NET Configuration Tool.
Ciao
P.S.
Il fare in modo che un assembly esterno non passa accedere direttamente ai tuoi files è la BASE per scrivere applicazioni sicure
Probabilmente il tuo assembly gira in un code group che non permette l'accesso al disco. Con l'attributo RequestMinimum tu specifichi che permesso richiede l'assembly, ma non è detto che il runtime te lo assegni.
Verifica il code group di appartenenza, e magari assegna un code group più permissivo tramite il .NET Configuration Tool.
Ciao
P.S.
Il fare in modo che un assembly esterno non passa accedere direttamente ai tuoi files è la BASE per scrivere applicazioni sicure
Come posso fare in modo di "conquistare" questi permessi e verificare il code group di appartenenza? Mi serve una firma digitale o cosa? Scusa l'ignoranza ma non ho mai utilizzato questa parte del framework :(
Einstein
22-06-2007, 07:21
Potresti creare uno strong name, associarlo all'assembly, e fare in modo che tutti gli assembly con quello strong name vengano eseguiti in un code group tuo personale che assegni loro FullTrust. Lo strong name lo generi con l'utility sn.exe che trovi nella cartella del framework. Il comando:
sn -k MyStrongNameFile.snk
genera lo strong name e lo scrive nel file MyStrongNameFile.snk.
In modo un po' più sbrigativo, potresti creare un tuo code group personale che assegni FullTrust alla cartella che contiene l'assembly.
Le strade sono molte, e la Code Access Security è un argomento un po' vasto. Spero di averti chiarito un po' le idee... ;)
Oltre ovviamente a MSDN, questo è un link abbastanza interessante sull'argomento: http://msdn.microsoft.com/msdnmag/issues/01/02/CAS/default.aspx
Ciao
Ho fatto di tutto, ho creato un code group con permessi infiniti ed ho messo la condizione che lo StrongName corrispondesse a quello del mio assembly, ho generato ed associato all'assembly uno strong name ma ancora non funziona, e mi da degli errori di protezione :doh:
Ho anche verificato che lo strong name fosse stato creato e associato correttamente tramite sn.exe -v nomeassembly.dll, e mi diceva che era tutto a posto. :doh:
E l'errore è sempre lo stesso:
http://img408.imageshack.us/img408/6164/screendv7.th.png (http://img408.imageshack.us/my.php?image=screendv7.png)
Non so più cos'altro fare (qualcosa a che fare con le chiavi pubbliche e private? ) :(
Risolto ^^
L'ho gaccato con il programma gacutil.exe, in questo modo ha acquistato i pieni poteri. Evvai, finalmente :D Grazie infinite Einstein :D
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.