Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - RegistryKey permessi
Forum - C# / VB.NET - RegistryKey permessi

Pagine: [ 1 2 3 ] Precedente | Prossimo
Avatar
Roby94 (Member)
Guru


Messaggi: 1127
Iscritto: 28/12/2009

Segnala al moderatore
Postato alle 19:29
Venerdì, 23/01/2015
Buonasera, in attesa di risposte in un altro topic vorrei chiedervi aiuto su un problema.
Ho un servizio che si avvia in automatico sotto win8.1, si connette al registro per delle impostazioni e comunica su una porta seriale. Ho delle difficoltà nella lettura del registro.
In fase di chiusura vado a scrivere nel registro le impostazioni modificate dal servizio
Codice sorgente - presumibilmente Plain Text

  1. this.registryKey = Registry.CurrentUser.CreateSubKey(@"software\CLC");
  2. this.registryKey.SetValue("Mode", (int)this.Mode);


Se mi reco però nel registro le chiavi non vengono create, ma se per caso le provo a leggere dal servizio con
Codice sorgente - presumibilmente C# / VB.NET

  1. foreach(string s in this.registryKey.GetValueNames()) Debug.WriteLog(s);


Questo me le stampa senza problemi, come mai? Per caso perché sto salvando le impostazioni in una sezione user differente da quella in cui apro il regedit, possibile? Se invece cerco di scrivere in local machine mi viene notificata l'insufficienza di permessi.
Come mi devo comportare?

Grazie


La programmazione è arte... fa che i tuoi script siano degni di un museo.
PM Quote
Avatar
darioza (Normal User)
Pro


Messaggi: 104
Iscritto: 06/10/2014

Segnala al moderatore
Postato alle 2:47
Sabato, 31/01/2015
Ciao, ammesso che è tardi, ma che non vedo nulla di strano, infatti la chiave, se funziona viene salvata esattamente dove gli stai dicendo, prova a salvare una chiave con un valore particolare e a cercarla nel registro, cosi ti rendi conto del "problema"...

PM Quote
Avatar
Roby94 (Member)
Guru


Messaggi: 1127
Iscritto: 28/12/2009

Segnala al moderatore
Postato alle 10:55
Sabato, 31/01/2015
I servizi di default vengono istallati sotto un utente virtuale chiamato "Servizio locale" ma questo mi limita dal punto di vista del registro, in quanto la key principale CurrentUser corrisponde a quella del servizio locale e non dell'utente corrente, questo è un problema, ho bisogno di poter accedere anche con un applicazione a interfaccia utente ai dati nel registro, per il momento ho risolto installando il processo sotto il mio account ma questo non va bene se vi sono piu utenti.


La programmazione è arte... fa che i tuoi script siano degni di un museo.
PM Quote
Avatar
darioza (Normal User)
Pro


Messaggi: 104
Iscritto: 06/10/2014

Segnala al moderatore
Postato alle 17:30
Sabato, 31/01/2015
allora...
per scrivere in HKLM bisogna avere o acquisire i permessi di amministratore, e fino a qui non ci piove.
Non ho capito il problema però...
è un servizio multi utente a livello macchina?
nel senso il problema si verifica con l'accesso dell'utente locale?

PM Quote
Avatar
Roby94 (Member)
Guru


Messaggi: 1127
Iscritto: 28/12/2009

Segnala al moderatore
Postato alle 19:51
Sabato, 31/01/2015
No il problema è che il servizio può accedere SOLO alle sotto chiavi di HKEY_CURRENT_USER dell'utente servizio locale, l'interfaccia utente invece è condizionata dal account con cui si è eseguito il login, quindi all'atto pratico il servizio e l'interfaccia utente non possono condividere una chiave presente in HKEY_CURRENT_USER visto che questi presentano degli hive diversi, vorrei spostare le chiavi di configurazione in HKEY_LOCAL_MACHINE cosi da non avere limitazioni legate all'utente, il problema sta nel fatto che il servizio non puo essere eseguito con i privilegi d'amministratore. Quindi o trovo il modo per scrivere in HKEY_LOCAL_MACHINE oppure da interfaccia utente devo riuscire ad accedere all'hive contenente HKEY_CURRENT_USER di servizio locale.


La programmazione è arte... fa che i tuoi script siano degni di un museo.
PM Quote
Avatar
darioza (Normal User)
Pro


Messaggi: 104
Iscritto: 06/10/2014

Segnala al moderatore
Postato alle 23:57
Sabato, 31/01/2015
..Cambiare approccio?
nel senso, non usare il registro per salvare le chiavi?
altrimenti devi usare permessi amministrativi per forza, potrei sbagliare, ma non penso neanche che qualche API possa aiutarti...

PM Quote
Avatar
Roby94 (Member)
Guru


Messaggi: 1127
Iscritto: 28/12/2009

Segnala al moderatore
Postato alle 0:07
Domenica, 01/02/2015
Preferirei il registro, la sua struttura ad albero mi è molto comoda, e mi dispiacerebbe perdere l'uso di uno strumento Windows cosi importante, è vero un file risolverebbe facilmente il mio problema ma vorrei evitare.


La programmazione è arte... fa che i tuoi script siano degni di un museo.
PM Quote
Avatar
darioza (Normal User)
Pro


Messaggi: 104
Iscritto: 06/10/2014

Segnala al moderatore
Postato alle 0:14
Domenica, 01/02/2015
Non penso di poterti aiutare perchè non penso si possa fare, come fai a fare quello che vuoi senza i giusti privilegi?
quindi o si usa un utente con i giusti permessi, o li si ottengono (guardati la classe principalpermission se può esserti utile)
Altrimenti rimane l'alternativa file e l'alternativa environment, ma personalmente non andrei a immischiarmi nella seconda alternativa.

PM Quote
Avatar
Roby94 (Member)
Guru


Messaggi: 1127
Iscritto: 28/12/2009

Segnala al moderatore
Postato alle 0:32
Venerdì, 06/02/2015
Non ho molte opzioni, gli account disponibili sono solo 3 se neanche LocalSystem mi permette di scrivere su registro nella LocalMachine cosa ci posso fare?!


La programmazione è arte... fa che i tuoi script siano degni di un museo.
PM Quote
Pagine: [ 1 2 3 ] Precedente | Prossimo