IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB 6 et antérieur Discussion :

récupération du password windows avec VB6


Sujet :

VB 6 et antérieur

  1. #1
    Membre du Club
    Inscrit en
    Août 2005
    Messages
    68
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 68
    Points : 40
    Points
    40
    Par défaut récupération du password windows avec VB6
    Bonjour,

    Je travaille sur une application VB6 qui envoi des mails en utilisant le serveur SMTP de l'entreprise. le problème est qu'il faut un accès authentifié pour permettre l'envoi aux adresses mails externes.

    Cette authentification est faite avec l'identifiant et le mot de passe windows de l'utilisateur de l'application. Pour l'instant j'arrive à récupérer l'identifiant windows en utilisant le code suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    Private Declare Function WNetGetUser& Lib "Mpr" Alias "WNetGetUserA" (lpname As Any, ByVal lpUserName$, lpnLength&)
     
    Private Sub Command2_Click()
     
             Dim username As String
             Dim cbusername As Long
             Dim ret As Integer
             username = Space(256)
             cbusername = Len(username)
             ret = WNetGetUser(ByVal 0&, username, cbusername)
             If ret = 0 Then
                ' Success - strip off the null.
                username = Left(username, InStr(username, Chr(0)) - 1)
                Password = Left(Password, InStr(Password, Chr(0)) - 1)
             Else
                username = ""
             End If
             Call MsgBox(username)
     
    End Sub
    Y a t'il d'autres fonctions API équivalentes qui permettent de récupérer le password et le domaine.

    Merci pour vos réponses.

  2. #2
    Membre expérimenté
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    1 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Argentine

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 173
    Points : 1 418
    Points
    1 418
    Par défaut
    tu veux faire un login automatique avec les données du client courant ? J'ose espérer que c'est impossible !!

  3. #3
    Membre du Club
    Inscrit en
    Août 2005
    Messages
    68
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 68
    Points : 40
    Points
    40
    Par défaut
    Je fais comment pour m'authentifier auprès du serveur SMTP?

  4. #4
    Membre expérimenté
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    1 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Argentine

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 173
    Points : 1 418
    Points
    1 418
    Par défaut
    c'est activedirectory ? si oui je pense que tu peux y arriver avec WMI (système d'authentification NT je sais plus comment ça s'appelle)

    Il existe pas mal de doc sur le thème.

    A+

  5. #5
    Membre expert
    Avatar de Delbeke
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    2 675
    Détails du profil
    Informations personnelles :
    Âge : 70
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 2 675
    Points : 3 696
    Points
    3 696
    Par défaut
    Je pense que tu pourais trouver des composants commerciaux réalisant cette prouesse. Moi, je m'y suis cassé les dents en ecrivant mon client Smtp.

    Le plus simple , a mon avis, serait d'utiliser les composants mapi livrés avec vb. A ce momment la, les paramètres de connection seront pris dans outlook ou oulook express . Reste plus qu'a les paramètrer correctement.

  6. #6
    Membre du Club
    Inscrit en
    Août 2005
    Messages
    68
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 68
    Points : 40
    Points
    40
    Par défaut
    Citation Envoyé par Delbeke Voir le message
    Je pense que tu pourais trouver des composants commerciaux réalisant cette prouesse. Moi, je m'y suis cassé les dents en ecrivant mon client Smtp.

    Le plus simple , a mon avis, serait d'utiliser les composants mapi livrés avec vb. A ce momment la, les paramètres de connection seront pris dans outlook ou oulook express . Reste plus qu'a les paramètrer correctement.
    C'est vrai que c'est plus simple d'utiliser les paramètres de connection d'outlook, mails le soucie est que l'adresse d'envoi ne doit pas être celle de l'utilisateur de la session.
    par exemple si c'est l'utilisateur toto.tata@societe.fr qui envoi à partir de sa session windows, nous avons besoin à ce que le destinataire voit l'adresse customerhelpdesk@societe.fr en tant qu'adresse source. d'où mon blocage.

    Pour l'instant j'ai trouvé une solution palliative qui consiste à saisir le mot de passe windows de l'utilisateur sur un champs crypté. Ce mot de passe me permettra de faire l'authentification auprès du serveur SMTP sachant que je sais comment récupérer le login windows (voir mon premier post).

    Je sais cette solution n'est pas la plus propre mais je continue à chercher.

    Merci beaucoup

  7. #7
    Membre éclairé
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2007
    Messages
    206
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Suisse

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2007
    Messages : 206
    Points : 849
    Points
    849
    Par défaut
    Salut dev-man,

    Il va de soit qu'il est impossible de récupérer le mot de passe de l'utilisateur courant ou de quelque utilisateur de ce soit en claire. Bien qu'il soit possible d'encrypter les mots de passes des utilisateurs d'un domaine de manière réversible, cette pratique est fortement déconseillée.

    Tu te trouve dans le même cas que j'ai eu a résoudre. Pour ce faire, j'ai simplement créer un fichier où je maintiens un mapping des utilisateurs windows avec le mot de passe de leur compte SMTP que je stock avec une encryption symétrique. Le mot de passe n'est pas transmis en clair à travers le réseau vers le server SMTP, il n'y a donc pas de risque pour les utilisateurs à utiliser le même mot de passe que celui de leur compte Windows tant que la décryption du mot de passe dépend d'une manière ou d'une autre de l'authentification de l'utilisateur par Windows.

    Jérôme

    edit : quand je dis que le mot de passe n'est pas transmis en clair, ce n'est pas forcemment vrai, alors attention au protocol d'authenfication de ton serveur.

Discussions similaires

  1. [AC-2007] Utilisation d'une dll windows personnalisée créer avec vb6
    Par samloba dans le forum VBA Access
    Réponses: 1
    Dernier message: 21/05/2010, 14h27
  2. Themes windows avec VB6
    Par Indepakassoil dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 21/01/2008, 15h04
  3. Réponses: 2
    Dernier message: 23/11/2007, 10h52
  4. Changer d'écran d'affichage windows avec VB6
    Par cameleon33 dans le forum VB 6 et antérieur
    Réponses: 20
    Dernier message: 31/05/2007, 16h58
  5. [VB6] Gestionnaire des tache de windows 2000 avec VB6
    Par Argonz dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 12/11/2002, 08h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo