Changer d'utilisateur d'une session windows sans Ctr + Alt +Supp
boosie
Messages postés7Date d'inscriptionlundi 9 janvier 2006StatutMembreDernière intervention11 janvier 2006
-
10 janv. 2006 à 00:51
boosie
Messages postés7Date d'inscriptionlundi 9 janvier 2006StatutMembreDernière intervention11 janvier 2006
-
12 janv. 2006 à 01:39
Bonjour tous le monde,
en ce moment je suis sur un projet de gestion d'individu avec un controle d'accès.
Mon problème ce situe justement à l'accès de l'appli.
j'aimerai savoir si il était possible de vérifier, a partir de delphi en entrant en paramètre un login et un mot de passe, leur authenticité ou leur validité par rapport à windows.
car en faite je ne peut créer de table avec login, pass, je veux justement essayer de garder un et un seul mot de passe que se soit pour l'ouverture de la session windows ou autres.
En bref y aurait-il une fonction permettant de faire ces tests, sinon que faire d'autres
cs_Delphiprog
Messages postés4297Date d'inscriptionsamedi 19 janvier 2002StatutMembreDernière intervention 9 janvier 201332 11 janv. 2006 à 20:36
C'est marrant, pour une fois je dirais que la question se rapporte bien à de la programmation avec Delphi !
Pour ce qui est de l'authentification, je ne répondrai que sur ce qui concerne la récupération du nom de l'utilisateur actuellement logué. Pour cela, tu trouveras rapidement le code source sur internet.
Tu peux aussi récupérer et stocker l'identifiant de session contenu dans la variable d'environnement SessionID (voir l'utilisation de la fonction GetEnvironmentVariable). Ainsi, tu dois pouvoir détecter un changement de session.
<hr color="#008000">Pensez à cliquer sur Réponse acceptée lorsque la réponse vous convient.
boosie
Messages postés7Date d'inscriptionlundi 9 janvier 2006StatutMembreDernière intervention11 janvier 2006 12 janv. 2006 à 01:00
Alors en faite, mon but est de pouvoir ouvrir mon application en se connectant(mot de passe, login).
Ces (mot de passe et login)s ne doivent en aucun cas être créer dans une table de base de données annexe.
C'est pourquoi nous avons choisie cette façon d'authentification.
C'est à dire garder le login windows et tester l'authentification.
Il est vrai que l'en peux justement récupérer le login windows, celà je les fait.
J'ai aussi essayer une petite bidouille mais.
Explication:
En faite j'ai essayé pour un utilisateur, lorsqu'il valide son login et son mot de passe, de connecté un lecteur réseau par rapport au dossier qui se trouve dans "\\nom de l'ordinateur\c$:\Documents and Settings\LoginUser"
et authentifier en tantque l'utilisateur LoginUser.
Dons ce dossier qui est accessible uniquement à l'admin et cet utilisateur.
si j'arrive à créer le lecteur réseau par rapport au login et mot de passe alors j'ouvre l'appli sinon je lance l'erreur.
normalement celà marche quand on est que sur un poste en local et que les utilisateurs ont été créer sur le poste en question.
Mais quand on est sur un domaine, imagine 2 utilisateurs steve et raphael.
j'ouvre une session windows avec raphael et j'essaye de me connecter dans mon appli avec steve.
Il ne va pas réussir à créer le lecteur réseau du chemin
\\nom de l'ordinateur\c$:\Documents and Settings\steve
car il n'a pas les droits
et tous ca parceque steve n'est pas créer en local sur la machine mais c'est un user du domaine.
boosie
Messages postés7Date d'inscriptionlundi 9 janvier 2006StatutMembreDernière intervention11 janvier 2006 12 janv. 2006 à 01:39
voici le code que j'utilise pour créer le lecteur réseau:
-------------------------------------
voici les variables:
NetRsce:TNETRESOURCE;
Retour:Integer;
lpBuffer: array[0..MAX_COMPUTERNAME_LENGTH] of char;
nSize: dword;
computer_name:string;
------------------------------------
//--je récupère le nom de l'orinateur--//
nSize:= Length(lpBuffer);
if GetComputerName(lpBuffer, nSize) then computer_name:= lpBuffer
else computer_name:= '';