August 2005 Blog Posts

Inserire Utenti in Active Directory Programmaticamente con C#

Ultimamente mi è stato chiesto di automatizzare la procedura di creazione ed inserimento utenti in un ambiente Active Directory. Lavorando con ADSI attraverso System.DirectoryServices è possibile effettuare queste operazioni "di gestione" in modo semplice ed indolore.Per prima cosa è necessario referenziare nel nostro progetto System.DirectoryServices e quindi procedere a creare una connessione al nostro path AD. DirectoryEntry myDE = new DirectoryEntry(@"LDAP://DC=" + this.domain + ",DC=it", username, password, AuthenticationTypes.Secure);   dove domain è un field valorizzato con il nome del vostro dominio. Successivamente creiamo un nostro contenitore di dati (io ho utilizzato un System.Data.DataTable valorizzato con i valori provenienti...

posted @ Monday, August 29, 2005 12:19 PM | Feedback (53)

ADSI IIS 01: Set/Delete HostHeaders in IIS con C#

System.DirectoryServices sfruttando ADSI permette l'interfacciamento ad Internet Information Services 6. Spesso si ha la necessità di eseguire operazioni batch per una grande quantità di domini internet presenti all'interno del proprio server/webfarm. Il codice che segue esegue le operazioni di set e delete degli HostHeaders per un determinato Virtual Server (un sito configurato) all'interno di IIS.Note:Referenziare System.DirectoryServices        private void Execute()        {              string[] a = new string[2];              a[0] = ":80:forum.dominio.it";              a[1] = ":80:www.dominio.it";                // Setta gli headers presenti nell'array              // per il dominio che ha IDIIS pari a 1967680450              SetIISHostHeader(a, 1967680450);                // Cerca e rimuovi gli...

posted @ Monday, August 29, 2005 11:51 AM | Feedback (23)

Sfruttare il Pooling di connessioni

Il pooling delle connessioni rappresenta una funzionalità eccezionale di ADO.NET. Consente di riutilizzare in modo trasparante una connessione ad un database quando questa non è più necessaria all’applicazione.Il meccanismo funziona in questi termini: non appena si apre la prima connessione al database, viene creato un pool di connessioni identiche, in modo che le richieste seguenti non debbano aspettare di ottenere una connessione valida. Quando l’applicazione completa tutte le operazioni sul database, deve chiudere esplicitamente l’oggetto Connection per restituirlo al pool e renderlo disponibile ad altre applicazioni. ADO.NET crea un numero di pool di connessioni pari al numero di stringhe di...

posted @ Monday, August 29, 2005 10:57 AM | Feedback (29)

Gestire al meglio le eccezioni di Sql Server con ADO.NET

Utilizzare SqlException per ricevere informazioni dettagliate circa l’errore generato dal database. SqlException espone la collezione Errors che contiene più oggetti SqlError. Un SqlError può essere di diversi tipi:- Server : Ritorna il nome del database che ha generato l’errore- Procedure : Ritorna il nome della procedure che ha generato l’errore- LineNumber : Ritorna il numero della riga della stored o del batch TSQL che ha generato l’errore.- Number : Il codice di errore di SqlServer relativo all’errore scatenato. Il tipo Number è decisamente interessante perchè ci fornisce ulteriori informazioni relative all’errore. Un valore compreso tra 1 e 10 è un tipico...

posted @ Monday, August 29, 2005 10:36 AM | Feedback (32)

Simply Generate Passwords with .net

Spesso si ha la necessità di geneare password per diversi scopi e necessità..NET non fornisce direttamente classi atti alla generazione di password.Possiamo però utilizzare System.Security.Cryptography per generare stringhe codificate aventi origine da valori che spesso possono essere quelli delle username. Il metodo non è sicuramente uno dei più sicuri, ma sicuramente è un ottimo inizio da cui partire.   /// /// Crea un hash md5 della stringa contenuta nella textbox1/// public string CodificaMD5(string TestoDaCodificare){// Crea array di byte per i valori passati dall'utentebyte[] arrHashInput;// Crea un array di byte per i valori in uscitabyte[] arrHashOutput;// Carica il MD5MD5CryptoServiceProvider objMD5 = new MD5CryptoServiceProvider();//...

posted @ Monday, August 29, 2005 9:28 AM | Feedback (33)