Public Function FindAccountAD() As Boolean
Try
' connection à l'active directory
Dim Entry As DirectoryEntry
Dim NaneSearch As String = My.Application.Info.AssemblyName
Entry = New DirectoryServices.DirectoryEntry(LdapLink)
Dim Searcher As New DirectorySearcher(Entry)
Searcher.Filter = "(objectClass=user)"
Dim DirEntry As DirectoryEntry
For Each result As SearchResult In Searcher.FindAll
' // On récupère l'entrée trouvée lors de la recherche
DirEntry = result.GetDirectoryEntry
If NameSearch = DirEntry.Properties("SAMAccountName").Value Then
WriteAudit(Date.Now & "; Connexion à l'AD réussie" & " ; " & UCase(Username))
Application.DoEvents()
If AuthenticateUser(LdapLink, NameSearch , Pass) Then
WriteAudit(Date.Now & "; Authentification à l'AD réussie" & " ; " & UCase(Login))
Return True
End If
End If
Next
Return False
Catch ex As Exception
WriteLog(Date.Now & " ; Erreur d'éxecution ; " & System.Reflection.MethodBase.GetCurrentMethod().Name & " ; " & ex.Message)
'MessageBox.Show(ex.Message)
Return False
End Try
End Function
Function AuthenticateUser(ByVal path As String, ByVal user As String, ByVal pass As String) As Boolean
Dim de As New DirectoryEntry(path, user, pass, AuthenticationTypes.Secure)
Try
'run a search using those credentials.
'If it returns anything, then you're authenticated
Dim ds As DirectorySearcher = New DirectorySearcher(de)
ds.FindOne()
Return True
Catch ex As Exception
WriteLog(Date.Now & " ; Erreur d'éxecution ; " & System.Reflection.MethodBase.GetCurrentMethod().Name & " ; " & ex.Message)
Return False
End Try
End Function
'Creation du dossier (uniquement accessible à "NameSearch ")
If Not System.IO.Directory.Exists(FolderSaveLink) Then
System.IO.Directory.CreateDirectory(FolderSaveLink)
End If
Public Sub RunAsApp(ByVal Login as string, ByVal Pwd as string, ByVal Domaine as string)
Try
Dim password As New SecureString()
Dim c As Char
For Each c In Pwd
password.AppendChar(c)
Next c
Dim path As String = My.Application.Info.DirectoryPath & "" 'Chemin de l'exe
Process.Start(path & "MonAppli.exe", Login, password, Domaine)
Me.Dispose()
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try