Convertire un SID in stringa con Java

Un security identifier (SID) è un identificativo univoco, comunemente utilizzato dai sistemi Microsoft. Viene ad esempio utilizzato per identificare univocamente degli utenti all’interno di Windows, o ancora più in generale anche di un sistema come Active Directory.

Il SID è un valore binario, di lunghezza arbitraria, e può anche essere rappresentato in una versione alfanumerica. Tale conversione risiede in una particolare funzione chiamata ConvertSidToStringSid, della libreria Advapi32.dll, disponibile solamente per Windows.

Per chi avesse bisogno di questo tipo di conversione può procedere in due modi:

  • Utilizzare Advapi32 (solo in ambiente Windows)
  • Riscrivere la conversione
Molto utile è quindi avere a disposizione tale funzione di conversione in un particolare linguaggio (nel nostro caso Java), in modo da essere utilizzata ovunque. Ho potuto notare che le implementazioni di questa funzione che si trovano in giro su Internet sono pochissime e commettono anche degli errori, nonostante che funzionino bene in generale. Vi presenterò pertanto una mia particolare implementazione testata in maniera approfondita.

Continua a leggere

Miro Rubix è tornato!

Ho rimesso online un gioco che ho fatto alcuni anni fa, chiamato Miro Rubix. Lo potete utilizzare sia per PC che per PSP! Un semplice puzzle, ispirato dal famoso gioco chiamato Rubik’s Cube. Il puzzle inizia con due figure iniziali dove solamente quella di sinistra è mescolata in vari quadranti. Muovendo solamente le colonne e le righe della figura di sinistra, bisogna riuscire a comporre la figura originale mostrata sulla destra. Il gioco ha a disposizione varie immagini per i puzzle, oppure si può giocare con i puzzle classici, questi ultimi sono immagini particolari che hanno solamente alcuni quadranti colorati. Inoltre potrete utilizzare le vostre immagini per creare i puzzle!

Continua a leggere

Richiesta Network Time Protocol in C#

Di recente, ho scritto un’applicazione in C# che ha bisogno di conoscere se il sistema ha il tempo corretto. Ho perciò fatto una classe che recupera il tempo utilizzando i server NTP. La classe è scritta per fare in modo che non vengano richiamati sempre gli stessi server, utilizzando un semplice vettore circolare. Per i dati che vengono ritornati dal server, vi invito a leggere RFC-2030.

Continua a leggere

ExitWindowsEx in C#

Vi posto una semplice classe per spegnere, riavviare e fare logoff in Windows utilizzando il famoso ExitWindowsEx. Per ogni metodo viene fatto overloading con un altro che può forzare l’azione. In altre parole, l’azione viene eseguita proibendo a Windows di mandare il messaggio WM_QUERYENDSESSION. In questo modo l’utente non potrà mai annullare l’azione.

Continua a leggere

Nascondere la finestra della Console in C#

Di recente ho realizzato un’applicazione per controllare (e limitare) il tempo che mio fratello impiega giornalmente al computer (cattivo!). Avendo la necessità di nascondere qualunque finestra mi sono ingegnato nel trovare una soluzione. Vi mostrerò pertanto la mia personale soluzione per farlo considerando sia un progetto di tipo Console Application che uno di tipo Windows Form Application.

Continua a leggere