Aller au contenu

[Resolu] Authentification active directory


NiTrOuS

Messages recommandés

Bonjour,

voilà, je voudrais sécuriser un peu mon site en créant une authentification avec l active directory.

Pour cela, j ai créé un formulaire tout simple ou il faut rentrer le domaine, son login et son mot de passe.

J'arrive a vérifier si l utilisateur existe bien dans l'AD (donc j arrive a interroger et a avoir une réponse de l'AD) mais je ne sais pas comment vérifier la validité du mot de passe. En effet, c est sécurisé donc impossible a récupérer.

Il doit bien existe une petit fonction qui permet de vérifier si le mot de passe correspond bien a celui du login entré et qui renvoi TRUE ou FALSE mais je ne trouve pas cette fonction.

Quelqu un la connait elle ?

Edit: c'est bon j ai trouvé tout seul :reflechis:

Lien vers le commentaire
Partager sur d’autres sites

C'est tout à fait vrai, mais c'est parce que je n'avais pas eu le temps à ce moment là.

Alors voila comment j'ai fait:

Dans ma page .aspx :

	Public Sub Connection(ByVal sender As Object, ByVal e As System.EventArgs)
	Dim reponse As String
	reponse = login(tblogin.Text,tbpassword.Text)
	If reponse = "True" Then
		HttpContext.Current.Session.Add("USERNAME",tblogin.Text)
		log(tblogin.Text,tbpassword.Text)
		HttpContext.Current.Response.Write(Redirect("accueil.aspx", 1)) 
	Else
		lError.Text = "Erreur de login/password"

	End If
End Sub

Donc là je récupère les deux champs texte (tblogin et tbpassword) que j'envois à une fonction login en codebehind

Code de la fonction login:

	Public Function Login(ByVal username As String, ByVal password As String) As Boolean
	Try
		Dim path As String = "LDAP://***"
		Dim entry As DirectoryEntry = New DirectoryEntry(path, username, password)
		Dim searcher As DirectorySearcher = New DirectorySearcher(entry)
		searcher.Filter = "(SAMAccountName=" & username & ")"
		Dim result As SearchResult
		result = searcher.FindOne()
		entry = result.GetDirectoryEntry
		Login = True
	Catch e As Exception
		System.Diagnostics.Debug.WriteLine("Erreur lors de la connection: ")
		System.Diagnostics.Debug.WriteLine(e)
		Login = False
	End Try
End Function

Etant donné que chaque utilisateur a le droit de se connecter en LDAP, j'essaye de faire une connection avec les paramètres rentrés par l'utilisateur. S'il n'y a pas de message d'erreur (donc que l'utilisateur a rentré le bon login/password) je renvois true. Si un message d'erreur est intercepté, je renvois false.

Voilà :up:

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...