Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Authentification Active Directory sous VB6 [ Système / Sécurité ] (Dante27)

lundi 28 janvier 2008 à 16:46:09 | Authentification Active Directory sous VB6

Dante27

Bonjour à tous, Je travaille actuellement sur un projet dans lequel il y aura une authentification par le biais du compte local windows; il faut donc pour ça récupérer le login et le mot de passe et les comparer par rapport à l'annuaire Active Directory.J'aurais voulu savoir si quelqu'un aurait une idée de la marche à suivre. Merci d'avance

lundi 28 janvier 2008 à 20:55:10 | Re : Authentification Active Directory sous VB6

ghuysmans99

Membre Club
Réponse acceptée !
Euh ... Ceci :

Option Explicit

Private Declare Function LogonUser Lib "advapi32.dll" Alias "LogonUserA" (ByVal lpszUsername As String, ByVal lpszDomain As String, ByVal lpszPassword As String, ByVal dwLogonType As E_LogonType, ByVal dwLogonProvider As E_LogonProvider, ByRef phToken As Long) As Long
Public Declare Function CloseHandle Lib "kernel32.dll" (ByVal hObject As Long) As Long
Public Declare Function ImpersonateLoggedOnUser Lib "advapi32.dll" (ByVal hToken As Long) As Long
Public Declare Function RevertToSelf Lib "advapi32.dll" () As Long

Private Enum E_LogonType
'This logon type is intended for users who will be interactively using the computer, such as a user being logged on
'by a terminal server, remote shell, or similar process.
'This logon type has the additional expense of caching logon information for disconnected operations;
'therefore, it is inappropriate for some client/server applications,
'such as a mail server.
LOGON32_LOGON_INTERACTIVE = 2

'This logon type is intended for high performance servers to authenticate plaintext passwords.
'The LogonUser function does not cache credentials for this logon type.
LOGON32_LOGON_NETWORK = 3

'This logon type is intended for batch servers, where processes may be executing on behalf of a user without
'their direct intervention. This type is also for higher performance servers that process many plaintext
'authentication attempts at a time, such as mail or Web servers.
'The LogonUser function does not cache credentials for this logon type.
LOGON32_LOGON_BATCH = 4

'Indicates a service-type logon. The account provided must have the service privilege enabled.
LOGON32_LOGON_SERVICE = 5
'This logon type is for GINA DLLs that log on users who will be interactively using the computer.
'This logon type can generate a unique audit record that shows when the workstation was unlocked.
LOGON32_LOGON_UNLOCK = 7

'#If WindowsVersionInfo.GetWindowsVersionInfo.dwPlatformId <> WinNT Then
 'This logon type preserves the name and password in the authentication package, which allows the server to make
 'connections to other network servers while impersonating the client. A server can accept plaintext credentials
 'from a client, call LogonUser, verify that the user can access the system across the network, and still
 'communicate with other servers.
 'NOTE: Windows NT:  This value is not supported.
  LOGON32_LOGON_NETWORK_CLEARTEXT = 8
 
 'This logon type allows the caller to clone its current token and specify new credentials for outbound connections.
 'The new logon session has the same local identifier but uses different credentials for other network connections.
 'NOTE: This logon type is supported only by the LOGON32_PROVIDER_WINNT50 logon provider.
 'NOTE: Windows NT:  This value is not supported.
  LOGON32_LOGON_NEW_CREDENTIALS = 9
'#End If

End Enum

Public Enum E_LogonProvider
'Use the standard logon provider for the system.
'The default security provider is negotiate, unless you pass NULL for the domain name and the user name
'is not in UPN format. In this case, the default provider is NTLM.
'NOTE: Windows 2000/NT:   The default security provider is NTLM.
LOGON32_PROVIDER_DEFAULT = 0
End Enum

Public Enum E_LogonMethod
LOGON_WITH_PROFILE = &H1
LOGON_NETCREDENTIALS_ONLY = &H2
End Enum

'###############################################################################################################

Public Function Logon(UserName As String, PassWord As String, Domain As String) As Long
Dim tok As Long, r As Boolean
r = LogonUser(UserName, Domain, PassWord, LOGON32_LOGON_NETWORK, LOGON32_PROVIDER_DEFAULT, tok)
If r Then
 Logon = tok
 Else
  Logon = False
End If
End Function
Colorisation syntaxique par Renfield
_______________________________________________________________________
VB.NETis good ...VB6is better

lundi 28 janvier 2008 à 20:56:27 | Re : Authentification Active Directory sous VB6

ghuysmans99

Membre Club
Réponse acceptée !
Et encore une remarque sur ce code : si le résultat de la fonction est <> False, faire CloseHandle avec son résultat pour fermer le handle.
_______________________________________________________________________
VB.NETis good ...VB6is better

mardi 29 janvier 2008 à 09:34:43 | Re : Authentification Active Directory sous VB6

Dante27

Réponse acceptée !
Merci beaucoup pour ce bout de code, je suis en train de bien le comprendre pour pouvoir correctement m'en servir. Par contre, j'ai une autre question. L'authentification va se faire via une form contenant 2 Labels et 2 TextBox ainsi qu'un bouton connexion; quand je cliquerais sur connexion, je passerais en paramètre à la fonction Logon le contenu des 2 TextBox? Merci encore pour votre aide.

mardi 29 janvier 2008 à 17:32:40 | Re : Authentification Active Directory sous VB6

ghuysmans99

Membre Club
Tout à fait ... un truc dans le genre :

Dim LogonResult As Long
LogonResult = Logon(Me.txt_UserName.Text, Me.txt_PassWord.Text, "tondomaine")
If LogonResult = False Then
 MsgBox "Nom d'utilisateur et/ou mot de passe incorrect(s) !", vbExclamation, "Erreur"
 Else
  MsgBox "Identification réussie ...", vbInformation, "Info"
  CloseHandle LogonResult 'ferme le handle
End If
Colorisation syntaxique par Renfield
_______________________________________________________________________
VB.NETis good ...VB6is better

mercredi 30 janvier 2008 à 09:25:42 | Re : Authentification Active Directory sous VB6

Dante27

Merci beaucoup, ca fonctionne parfaitement bien! Bonne journée

lundi 4 août 2008 à 08:30:11 | Re : Authentification Active Directory sous VB6

Djodu69

Bonjour,

J'essaye ce code avec Access2007 mais j'ai quelque soucis au niveau des déclarations de fonctions publiques au début du code. Y-a t'il quelqu'un qui est déjà essayé ce code ?

Merci par avance

lundi 4 août 2008 à 09:02:06 | Re : Authentification Active Directory sous VB6

Djodu69

C'est bon j'ai trouvé :) Juste à enlever les "public" devant les déclaration.
La question que je me pose maintenant est comment récupérer des infos du genre Prénom et Nom stocker sur l'AD ?


lundi 4 août 2008 à 10:09:27 | Re : Authentification Active Directory sous VB6

ghuysmans99

Membre Club
[ Lien ]
_________________________________________________________________________
VB.NET is good ... VB6 is better<

vendredi 12 septembre 2008 à 16:31:17 | Re : Authentification Active Directory sous VB6

philmaitre

Bonjour

pourriez vous me montrer coment vous avez implementer cette fonction de test de mot passe AD, je n'arrive pas à le faire fonctionner.

Merci d'avance
Philippe


1 2

Cette discussion est classé dans : vb6, active, directory, authentification


Répondre à ce message

Sujets en rapport avec ce message

VB6 + Active directory [ par Zouille ] Bonjour à tousJe cherche le moyen a partir d'une appli vb6 de créer un compte sous win200 server ainsi que le partage d'un rep pour ce compte(droits N consoles mmc/authentification sous active directory [ par carinae ] Bonjour,je voudrais savoir s'il est possible de lancer des consoles mmc en cliquant sur un bouton par exemple et comment ? de plus, je voudrais savoir IDENTIFICATION USER DANS ACTIVE DIRECTORY (VB6) [ par cosimo ] Je désire restreindre l'accès à une application X.pour cela je désir créer une userform sur laquelle j'offre à l'utilisateur le moyen de s'identifier Lister les users de l'Active Directory [ par drakkard ] Bonjour, je souhaiterai sous VB6 lister tout les utilisateurs de l'Active Directory sans être forcément sur un serveur AD. Je souhaite pouvoir le fai Urgent !! vb6 et activedirectory [ par kam74 ] Salut à tous,Je dois faire un programme en vb6 dans lequel je dois recuperer certaines infos concernant l'utilisateur(NOm,Prenom,emailtelephone etc... conenxion aux users d'un groupe active directory [ par bax710 ] Bonjour a tous,  j'aimerai bien faire un script en vbs qui se connecte a tout les utilistateurs d'un groupe d'active directory afin de pouvoir effectu impasse : droit AD et connexion ldap [ par Cybertat ] Bonjour à tous,Il y a deux choses que je cherche à faire sans y parvenir complétement : J'ai trouvé sur le site de microsoft un script permettant d'af Vb et active directory [ par thomasesteve1 ] Je cherche à faire une application VB qui utiliserait le principe d'authentification Windows.Existe-t-il un contôle VB qui irait chercher un passerell active directory [ par red_devil617 ] j'ai un réseau d'une école qui contient plus de 100pc appartenant a un domaine Active directory et chaque etudiant a son propre compte, je veux savoir Comment répertorier active directory dans une list box? [ par morpheus22170 ] Bonjour, je voudrais répertorier les ordinateurs se trouvant dansmon active directory  (CN=Computers) dans une ListBox.Merci de bien vouloir m'aider.


Nos sponsors

Sondage...

CalendriCode

Décembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,312 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.