Authentification sur un LDAP
:salut:
Je suis en train de créer un module (ASP.Net Server Control) pour permettre la connexion des utilisateurs aux applications ASP.Net avec une gestion de droits. Mon problème c'est que ne maîtrise pas vraiment ce genre de chose, pour ma fonction d'authentification, il faut le nom d'utilisateur et mot de passe, comme il est montré en exemple sur la MSDN.
Voici mon code:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
| Public Function IsAuthenticated(ByVal username As String, ByVal pwd As String) As Boolean
Dim domainAndUserName As String = "XXXX.XXXXX" & "\" & username
Dim entry As New DirectoryEntry(_path, domainAndUserName, pwd)
Try
Dim obj As Object = entry.NativeObject
Dim search1 As New DirectorySearcher(entry)
Dim result1 As SearchResult = Nothing
With search1
.Filter = "(userPrincipalName=" & username & "@XXXX.XXXXX)"
.PropertiesToLoad.Add("cn")
result1 = .FindOne()
End With
If IsNothing(result1) Then
Dim search2 As New DirectorySearcher(entry)
Dim result2 As SearchResult = Nothing
With search2
.Filter = "(SAMAccountName=" & username & ")"
.PropertiesToLoad.Add("cn")
result2 = .FindOne()
End With
If IsNothing(result2) Then
Return False
Else
_path = result2.Path
_filterAttribute = Convert.ToString(result2.Properties("cn")(0))
GetUserData(username)
End If
Else
_path = result1.Path
_filterAttribute = Convert.ToString(result1.Properties("cn")(0))
GetUserData(username)
End If
Catch ex As Exception
Return False
End Try
Return True
End Function |
Le problème c'est pour récupérer ce mot de passe.. Déjà que dans mon programme de test Context.User.Identity.Name ne me retourne rien (pourquoi d'ailleurs ?). Est-il possible de récupérer le nom d'utilisateur et mot de passe de la session de Windows ? Dans l'idéal c'est ce qu'il faudrait faire car l'utilisateur (la plupart du temps) qui ouvre sa session Windows est celui qui se connectera aux applications donc, avec ses identifiants Windows.
:merci: d'avance