agosto 2006 Blog Posts
Come si può facilmente intendere dal nome, una WindowsIdentity identifica uno specifico utente Windows. La maggiore differenza che si può incontrare facendo la comparazione tra WindowsIdentity e GenericIdentity sta nella costruzione dell'oggetto. Una WindowsIdentity si propone con quattro costruttori, il primo argomento di questi è di tipo IntPtr. IntPtr windowsToken /* =...*/;
IIdentity windowsUser = new WindowsIdentity(windowsToken, "NTLM",
WindowsAccountType.Normal, true);
Questo esempio mostra come il costruttore usi più argomenti. Il secondo argomento è dato dalla tipologia di autentificazione. Il terzo invece è valore di enumerazione di tipo WindowsAccountType, il quale,...
Dando per scontato il nostro skill sul funzionamento delle identità nel mondo Microsoft .NET Framework, andremmo ora a coprire l'importantissimo argomento dell'interfaccia IPrincipal.
Formata da due membri:
Identity: una proprietà Read-Only legata alla Principal
IsInRole: un metodo che informa se Principal appartiene ad uno specificato gruppo.
.NET espone due implementazioni di IPrincipal: GenericPrincipal e WindowsPrincipal, e proprio di queste andremmo a parlare.
GenericPrincipal è l'implementazione più semplice di IPrincipal. Per crearne una è necessario sottoporre un oggetto basato su una interfaccia IIdentity accompagnato da una lista di ruoli alla quale essa appartiene. Per esempio..
string[] roles = {"administrators", "developers"};
IIdentity soloNome = new GenericIdentity("amarziali");
GenericPrincipal genericPrincipal =
...
L'interfaccia IIdentity è usata per definire informazioni relative all'utente. Generalmente, l'utente che sta eseguendo il codice. IIdentity definisce tre proprietà read-only: Name : Una stringa che definisce il nome logico dell'utente nel formato dominio\nome. AuthenticationType : Una stringa che definisce la tipologia di autentificazione usata per verificare l'utente (per esempio Kerebos e Passport). IsAuthenticated : Un valore booleano che indica lo stato di autentificazione dell'utente. .NET fornisce queste quattro implentazioni di IIdentity: GenericIdentity (sec30) WindowsIdentity (sec31) FormsIdentity (sec32) PassportIdentity (sec33) Per ora parleremo di GenericIdentity. Come specificato dal nome GenericIdentity non è direttamente collegato ad alcun protocollo per...
Riapro la serie .NET Security con un post, a mio modo di vedere, importante. Stiamo parlando della sicurezza di .NET ed il suo inevitabile scontro con la sicurezza del sistema operativo. Come abbiamo avuto modo di vedere, .NET ha molto da offrire quando si parla di permessions e di sicurezza in generale, tuttavia questo non significa che .NET sia immune o superiore alle policy di sicurezza definite dal sistema operativo. Ragionando per esempi, inviterei a verificare il funzionamento del seguente metodo. [method: FileIOPermission(SecurityAction.Demand,Write = IMAGE_DIR)]public void SalvaImmagine(string NomeImmagine){ FileName = IMAGE_DIR + NomeImmagine if(true == File.Exists(NomeImmagine)) { File.Delete(NomeImmagine)); } ...
Alla fine mi serviva, avrei potuto fare un file batch.. ma così posso permettermi di introdurre diverse feature che mi potranno essere sicuramente d'aiuto. (integrazione con nmap?) , report comma(?).Ora non mi resta che impostare la modalità di adattamento (lan / internet) basandomi su dei valori da specificare nella proprietà ReceiveTimeOut della classe Socket.