Test de connection avec utilisateur et mot-de-passe windows (logonusera)

Soyez le premier à donner votre avis sur cette source.

Snippet vu 11 961 fois - Téléchargée 37 fois

Contenu du snippet

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 / Exemple :


//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;
}

A voir également

Ajouter un commentaire

Commentaires

DeAtHCrAsH
Messages postés
2671
Date d'inscription
vendredi 25 janvier 2002
Statut
Membre
Dernière intervention
6 février 2013
1 -
J'ai pas testé mais ca reste interressant. Ca peut toujours servir.

Shell
mickbad
Messages postés
76
Date d'inscription
mercredi 17 juillet 2002
Statut
Membre
Dernière intervention
20 avril 2008
-
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
clem0338
Messages postés
65
Date d'inscription
mercredi 19 juin 2002
Statut
Membre
Dernière intervention
9 mars 2008
-
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 !!!

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.