PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2024 → Récupérer le Groupe auquel appartient l'utilisateur dans l'active directory
Récupérer le Groupe auquel appartient l'utilisateur dans l'active directory
Débuté par praquin, 14 sep. 2005 16:40 - 8 réponses
Posté le 14 septembre 2005 - 16:40
Bonjour,
je cherche à récupérer le Groupe de l'utilisateur afin de lui attribuer automatiquement, suivant son appartenance à tel ou tel groupe (Administrateur, Utilisateur, Invité ...), certains droits dans l'application (Windev) que je dois développer.
Cette façon de procéder ,Single Sign On, simplifie la gestion des droits au niveau de l'application et il devient dès lors inutile de passer par une fenêtre Login/Password.
Mais comment faire, quelles fonctions de l'advapi32.dll utiliser si c'est dans cette DLL qu'il faut chercher et quel serait le code Wlangage ?
Merci par avance de vos lumières.
Laurent
Posté le 14 septembre 2005 - 15:10
Salut,

J'ai une petite classe qui utilise les classes .net qui permet ceci, je te
l'envoie par email (fidelityprograms.fr).

J'ai fait un petit programme qui te démontre l'utilisation

Mathieu
Posté le 14 septembre 2005 - 17:24
bonjour, si j'ai bien compris ce que tu demandais, alors j'ai une solution :

gpwRecupInfoUtilisateur ( gpwInfoGroupe )

avec cette fonction tu peux récupérer toutes les autres infos de l'utilisateur du groupware : gpwInfoxxx.

bon courage.
Posté le 14 septembre 2005 - 18:06
Merci Morgan,
mais ce n'est pas ce que je cherche, je veux utiliser le Groupe qui a été défini au niveau de Windows par l'administrateur réseau : Utilisateurs et groupes locaux, et comme je le disais on s'affranchit ainsi d'une gestion User/login/Password au niveau Windev, les droit découlent du groupe d'appartenance Windows.
De plus en plus de grandes sociétes demandent ce type de gestion pour les applications développés, cette notion de Single-Sign-On (SSO) : on ne se signe q'une fois lors de l'ouverture de la session Windows, va devenir cruciale pour accéder au "grands comptes".
Il serait intéressant que l'on développe cette idée sur ce forum, je pense que bien des développeurs seront intéressés.
bien cordialement et merci en tout cas pour la réactivité.
Laurent
Posté le 14 septembre 2005 - 18:40
Bonjour,
En premier, il faut choisir un lancement manuel du groupware dans l'application.
Ensuite dans l'initialisation de l'application:
//Récupération du login de l'utilisateur
NomUtilisateur = Majuscule(RéseauUtilisateur())
MotDePasse = "LeMotDePasseDesUtilisateurs"

// Au cas où le groupware ne serait pas paramétré
SI NomUtilisateur = "ADMINISTRATEUR" ALORS
NomUtilisateur = "SUPERVISEUR"
MotDePasse = "SUPERVISEUR"
FIN
// Connection de l'utilisateur
SELON GPWLogin(NomUtilisateur,MotDePasse)
CAS gpwErreur
FinProgramme("Erreur lors de la connection au groupware.")
CAS gpwUtilisateurInconnu
FinProgramme("Utilisateur inconnu.")
CAS gpwMotPasseInvalide
FinProgramme("Mot de passe invalide.")
CAS gpwOk

AUTRE CAS // Annulation de la connection par un superviseur
FinProgramme()
FIN
Ensuite il faut créer les utilisateurs dans le groupware, avec comme code leur login sous Windows, et un mot de passe par défaut.
De cette façon, l'utilisateur n'a pas à s'identifier lorsqu'il lance l'application, et le groupware est tout de même actif.
Et dans le cas d'un utilisateur qui appartient au groupe administrateur, le menu de configuration du groupware est tout de même proposé, ce qui permet de le configurer.

Frédéric.
Posté le 15 septembre 2005 - 14:16
Personnellement, sur une de mes applications j'ai gérer le problème autrement...

En effet, je mets en place mon GroupWare Utilisateur en mettant en place tous les droits, groupes, etc....

Ensuite dans la fenêtre GpwLogin, je vais récupérer le login WINDOWS (qui est le même que celui de mon Groupware) ensuite je vais récupérer le mot de passe correspondant dans le fichier du Groupware et je simule le clic sur OK !!!!

à partir de là ma connexion à l'application se fait via le groupware utilisateur de mon application, mais pour l'utilisateur cela est transparent !!!!!

Si tu a besoin d'infos, n'hésite pas !!!
Posté le 15 septembre 2005 - 17:10
J'ai une collection de procedure qui via LDAP récupére les information contenues dans l'ADSI Inter ?
Posté le 19 septembre 2005 - 11:07
Bonjour,
Mathieu Kurth m'a envoyé un remarquable "petit programme", comme il dit, qui utilise les classes .NET qui répond à ce que je cherchais, seul soucis il manque invariablement un groupe sur l'ensemble des groupes listés pour un utilisateur donné.
Parrallèlement au travail de Mathieu je veux bien, Philippe, explorer aussi la solution que tu proposes via LDAP.
Merci pour vos idées toutes ingénieuses et excuser mon indigence en matière de programmation.
Bien amicalement.
Laurent.
Posté le 04 novembre 2005 - 15:17
je suis tres interressé par le peti bout de ton programme de login justement
serait il passoble d'avoir plus d'explication
merci