La casa della brugola informatica


il mondo che vorresti...o forse no...
Archivio Posts
Anno 2009

Anno 2008

Anno 2007

Anno 2006

Autenticazione tramite Active Directory con VB.NET

In un'ottica di "globalizzazione" delle password (parlo a livello aziendale) a volte può essere comodo usare le stesse credenziali, sia per accedere al computer che per accedere ai vari programmi gestionali fatti in casa (sempre se si dispone di un programmatore all'interno dell'azienda).

Se il sistema lavora con un database (SQL o Access o Oracle) si può inserire una tabella specifica con dentro tutte le persone che possono accedere al programma....con relativa user e password di accesso. Analizziamo pro e contro:

PRO:
- si definisce in modo certo, chi può accedere al programma e chi no

CONTRO:
- l'utenza si può reperire con una certa facilità....certo bisogna conoscere SQL e EM, però diciamo che non è così complicatissimo....
- se le password di accesso al computer cambiano, bisogna cambiare tutto all'interno del DB; e se abbiamo inseriti tanti utenti? e se abbiamo più programmi e quindi più database? certo si potrebbe creare una certa scalabilità, facendo un database che racchiude le credenziali di accesso....ma poi bisognerebbe attuare una procedura di backup....insomma una perdita di tempo.

allora si può procedere in maniera diversa....si attua l'autenticazione tramite Active Directory...

PRO:
sicuramente più "sicuro" nell'ottica del reperimento delle credenziali
non richiede troppe modifiche quando cambiano le password
in caso di inserimento di un nuovo utente non bisogna fare niente

CONTRO:
non si può più definire chi può accedere al programma e chi no....salvo controlli a monte....certo che se il programma è installato su una serie di pc "mirati" si è già fatto un primo "filtro"....e poi chi glielo va a dire che l'autenticazione è fatta con AD?

poi si può aprire una discussione sull'utilità o meno di questa cosa....io mi limito ad inserire il codice di come si fa....poi siete liberi di usarlo o meno... 

Procedura:

caricate la referenza: System.DirectoryServices

nella schermata di login, inserite questo codice:

Imports System.DirectoryServices (importiamo la dll caricata)

Dim User as string

Private Sub OK_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OK.Click
        Dim Risposta As String = ValidateActiveDirectoryLogin("NOMEDOMINIO", UsernameTextBox.Text, PasswordTextBox.Text).ToString
        If Risposta = True Then
            Messagebox.show("Benvenuto: " & User)
            Me.Close()
        Else
            Messagebox.show("Accesso negato, utente non in AD")
        End If
End Sub

Private Function ValidateActiveDirectoryLogin(ByVal Domain As String, ByVal Username As String, ByVal Password As String) As Boolean
        Dim Success As Boolean = False
        Dim Entry As New DirectoryEntry("LDAP://" & Domain, Username, Password)
        Dim Searcher As New System.DirectoryServices.DirectorySearcher(Entry)
        Searcher.Filter = "sAMAccountName=" & Username
        Searcher.PropertiesToLoad.Add("DisplayName")
        Searcher.PropertiesToLoad.Add("description")
        Try
            Dim Results As System.DirectoryServices.SearchResult = Searcher.FindOne
            Success = Not (Results Is Nothing)
            User = Results.Properties("DisplayName")(0).ToString
        Catch
            Success = False
        End Try
        Return Success
End Function

facile no?....

S
Categoria: Script e Dev World
martedì, 07 mar 2006 Ore. 22.47








Ora e Data
Statistiche
  • Views Home Page: 350.307
  • Views Posts: 828.985
  • Views Gallerie: 43.119
  • n° Posts: 334
  • n° Commenti: 283
Mappa
Copyright © 2002-2007 - Blogs 2.0
dotNetHell.it | Home Page Blogs
ASP.NET 2.0 Windows 2003