begin process at 2010 02 10 17:21:34
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Astuces

 > TEST DE CONNECTION AVEC UTILISATEUR ET MOT-DE-PASSE WINDOWS (LOGONUSERA)

TEST DE CONNECTION AVEC UTILISATEUR ET MOT-DE-PASSE WINDOWS (LOGONUSERA)


 Information sur la source

Note :
7 / 10 - par 4 personnes
7,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Astuces Niveau :Débutant Date de création :14/09/2004 Vu :8 489

Auteur : lionel_dumontet

Ecrire un message privé
Commentaire sur cette source (3)
Ajouter un commentaire et/ou une note

 Description

Ce programme prend en paramètre sur la ligne de commande un utilisateur et un mot de passe permettant de se connecter à Windows.
Il teste que la connection fonctionne correctement.

Source

  • //Nom du programme TestLogonUserA
  • #include <windows.h>
  • #include <stdio.h>
  • int main(int argc, char **argv) {
  • HANDLE token;
  • BOOL resultat;
  • // Vérification de la syntaxe de la commande
  • if (argc != 3) {
  • printf("\nUsage commande : TestLogonUserA NOM_UTILISATEUR MOT_DE_PASSE\n");
  • return -1;
  • }
  • // Appel de la fonction de test de la connection
  • // la donnée token ne sert qu'à garder en mémoire l'instance de la connection
  • printf("Appel fonction LongonUserA\n");
  • resultat = LogonUserA(argv[1], NULL, argv[2], LOGON32_LOGON_INTERACTIVE, LOGON32_PROVIDER_DEFAULT, &token);
  • if (resultat)
  • printf("\tConnection reussie\n");
  • else
  • printf("\tConnection refusee\n");
  • printf("Appel termine\n");
  • CloseHandle(token);
  • return 0;
  • }
//Nom du programme TestLogonUserA
#include <windows.h>
#include <stdio.h>

int main(int argc, char **argv) {
    HANDLE token;
    BOOL resultat;
    
    // Vérification de la syntaxe de la commande
    if (argc != 3) {
        printf("\nUsage commande : TestLogonUserA NOM_UTILISATEUR MOT_DE_PASSE\n");
        return -1;
    }
    
    // Appel de la fonction de test de la connection
    // la donnée token ne sert qu'à garder en mémoire l'instance de la connection
    printf("Appel fonction LongonUserA\n");
    resultat = LogonUserA(argv[1], NULL, argv[2], LOGON32_LOGON_INTERACTIVE, LOGON32_PROVIDER_DEFAULT, &token);
    if (resultat) 
        printf("\tConnection reussie\n");
    else 
        printf("\tConnection refusee\n");
    printf("Appel termine\n");
    
    CloseHandle(token);
    return 0;
}



 Sources de la même categorie

SMART POINTEUR À COMPTEUR DE RÉFÉRENCE par nirgal76
POINTEUR INTELLIGENT par snpier wolf
ALIGNER TEXTE CONSOLE par CptPingu
QWERTY - AZERTY AVEC SDL, UNE ALTERNATIVE par Scheb
Source avec Zip Source avec une capture INSERER UNE ANIMATION FLASH (WIN32-DEVCPP) par gagah1

Commentaires et avis

Commentaire de DeAtHCrAsH le 14/09/2004 20:40:03

J'ai pas testé mais ca reste interressant. Ca peut toujours servir.

Shell

Commentaire de mickbad le 12/10/2004 10:30:59

Si je peux me permettre : l'utilisation de cette api doit se faire dans le cadre d'un utilisateur ayant les droits suffisants (admin, utilisateur avec pouvoir, ...).

Naturellement, on peut dans un programme mettre en place des droits d'accès mais pas de les inventer : si tu n'es pas admin, tu ne pourras l'être depuis un programme (sauf s'il est exécuter sous un autre login).
Euh .. pas clair tout ça !

En gros, la fonction LogonUserA ne fonctionne pas lorsque l'utilisateur n'a pas des droits suffisants.

Il y a quelques années, j'avais fait un activeX pour ASP (Web) dont une des tâches était d'identifier un utilisateur. Le soucis immédiat est que le serveur web (IIS en l'occurence) exécutait les scripts sous le login nobody (ou équivalent) donc sans droits particulier. Le résultat est que personne ne pouvait se connecter. Un changement de login (possible sur un script particulier .. enfin, la configuration n'est  pas intuitive :) a résolu le problème car ce nouveau login était "Utilisateur Avec Pouvoir".

Je dis ça en gros car je ne me souviens plus vraiment du droit exact à utiliser :)

Voilà, c'est bien de mettre ce code car on ne connait jamais assez les API Win32 :)))

Not a bug, it's a feature !

Mick

Commentaire de clem0338 le 20/09/2005 11:54:54

J'utilise cet API ( LogonUser ) mais elle me renvoie systematiquement 0 ( erreur donc ) alors que GetLastError juste derriere me renvoie 0 ( Opération OK ) ????

J'ai les privilèges ( lancé depuis le compte Administrateur ). Pourriez vous m'aider please !!!

 Ajouter un commentaire




Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), 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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,733 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales