Newsgroup: it.comp.programmare.win32
Titolo: Re: Accedere a computer remoto

Ciao a tutti !
Sono nuovo di questo Forum. Sono approdato a questo 3d qui dopo una lunga ricerca di argomenti quali LogonUser e ImpersonateLoggedOnUser.
Sto utilizzando queste due funzioni in un'applicazione VB per loggarmi e impersonare l'amministratore di sistema da un account senza privilegi.
Dopo giorni e giorni a sudare (non vi dico quanti problemi su Win2k) finalmente qualcosa si sta muovendo. Le due funzioni, prima la logonUser, poi la ImpersonateLoggedOnUser, sembrano funzionare. Dico "sembrano" in quanto restituiscono valori incoraggianti: la prima restituisce <> 0 e mi ritorna l'handle del token valorizzato. La seconda restituisce <> 0.
Nei test che ho fatto però, il mio codice girava in account senza privilegi, si autenticava come amministratore, lo impersonava e tentava invano di eliminare un file di cui solo l'amministratore aveva in pieno controllo.
Non capisco il perchè di questo insuccesso e speravo che qualcuno di voi potesse darmi qualche dritta.
In particolare mi ha attirato questa dichiarazione:
l'account deve avere il permesso dalla policy di agire come parte del
sistema operativo
e vorrei saperne di più. Potrebbe essere questa la causa della (evidentemente) mancata concessione delle credenziali di amministratore alla mia applicazione ?
Potreste spiegarmi come fare a verificare se il mio account ha questi permessi ?
Inoltre, girando per la rete ho trovato dichiarazioni spesso contrastanti tra loro che mi hanno parecchio confuso:
1)
Stando all'MSDN, l'impersonificazione (passatemi il termine bruttissimo) mediante token ottenuto con LogonUser può essere fatta anche su sistemi non server... E' corretto ?
2)
Sempre stando all'MSDN, l'impersonificazione ha validità di thread:
"The ImpersonateLoggedOnUser function lets the calling thread impersonate the security context of a logged-on user. The user is represented by a token handle."
Che implicazioni ha questo sul mio codice VB ? Mi spiego meglio: se impersono un'amministratore, posso operare con le sue credenziali in qualunque punto della mia applicazione ? Se si, le credenziali sarebbero a livello di processo... Non ho le idee molto chiare a questo proposito.
Vi ringrazio in anticipo per le risposte.
Ciao
Simo
-- 
SimoneVB 
------------------------------------------------------------------------
View this thread: 
http://www.itsistemi.net/viewtopic-302240.html
Inviato via 
http://www.itsistemi.net

 CUT <
Incredibile...e' dalal tarda mattinata che pure io sto sblindando sulla
LogonUser, AdjustTokenPrivileges etc etc
il problema che devo risolvere io e' far comunicare due named pipe remotate
su due diversi pc. Se son loggati con lo stesso utente di dominio bene...
otherwise..ciccia.
Solo non riesco a far lavorare correttamente la AdjustTokenPrivileges !!!
(Serve il privilegio SE_TCB_NAME !!)
L'impersonificazione come da doc. msdn e' decisamente attuabile anche su
sistemi non server
Le credenziali (token) come hai letto sono ereditate a livello di thread,
quindi disponibili ed utilizzabili dal solo thread che ha effettuato
l'autenticazione.. oppure e' possibile utilizzare il token per creare un
nuovo processo che girera' nel contento del nuovo utente.
Sko

 RICUT <
Allora, verificato che in W2K , L'API della piattaforma LogonUser necessita
del privilegio SE_TCB_NAME, ovvero il privilegio "Agisci come parte del
sistema operativo", quesot va abilitato nel local security policy per cio'
che riguarda l'utente che effettua la chiamata. Questa operazione abilita
l'esecuzione senza errori dell'api LogonUser... Questa operazione NON e' +
necessaria in WXP.
Sko