Utilisation mot de passe windows

Base_ile

XLDnaute Nouveau
Bonjour

Il est facile de trouver qui a ouvert la session Windows via Environ("USERNAME")

Est il possible via le VBA d'excel et peut etre un API windows de vérifier un couple Usermame / password ?

Avez vous un bout de code à me proposer ?

Merci d'avance :eek:
 
Dernière édition:

Base_ile

XLDnaute Nouveau
Re : Utilisation mot de passe windows

Je pense que si ,

le macro distribuée ne comporte aucune donnée...

La macro accède à une base centrale (qui comporte les données et les droits de la macro mais dont le chemin sur le réseau n'est pas connu par l'utilisateur)

l’authentification de l'utilisateur de la macro via son mot de passe Windows permettra de m'assurer que les droit attribués (pour la macro) sont les bons...

je suis parti sur une base centrale et un code vba distribué car plusieurs utilisateurs pourront utiliser la base centrale en même temps (pas de pbs pour l'utilisation quasi simultanée :) cela je sais gérer)

je teste le code demain et vous tiens au jus

en tout cas merci :)
 

Staple1600

XLDnaute Barbatruc
Re : Utilisation mot de passe windows

Re

Base_ile
A partir du moment où on peut ouvrir Excel (ou un fichier Excel) sans activer les macros, je ne vois pas comment une macro d’authentification peut être utilisée ??
(sauf avec des utilisateurs novices d'Excel)

De plus il est possible de déterminer quel est le mot de passe.
(voir la littérature sur le net à ce sujet)
(et par conséquent de modifier le code VBA en conséquence)
 
Dernière édition:

ROGER2327

XLDnaute Barbatruc
Re : Utilisation mot de passe windows

Bonjour à tous.


un essai de maître
super , cela fonctionne nickel

base
Cela fonctionne très-bien...

Sur ma machine, j'ai plusieurs utilisateurs. Mettons ROGER, avec le mot de passe 2327, et SIMONE, avec un mot de passe très-sûr : admin.

Je démarre en ouvrant la session sous le nom ROGER ; aucune autre session n'est ouverte.

J'ouvre le classeur et je m'authentifie (ou m'autentifie, ou m'authenfie, comme on voudra) avec SIMONE et le mot de passe admin.

Bingo !
"L'authentication a réussi."


Bonne soirée.


ℝOGER2327
#7274


Jeudi 5 Palotin 141 (Sainte Poignée, veuve et Sainte Jutte, recluse - fête Suprême Quarte)
5 Floréal An CCXXII, 6,1294h - rossignol
2014-W17-4T14:42:38Z
 

david84

XLDnaute Barbatruc
Re : Utilisation mot de passe windows

Bonjour à tous.


Cela fonctionne très-bien...

Sur ma machine, j'ai plusieurs utilisateurs. Mettons ROGER, avec le mot de passe 2327, et SIMONE, avec un mot de passe très-sûr : admin.

Je démarre en ouvrant la session sous le nom ROGER ; aucune autre session n'est ouverte.

J'ouvre le classeur et je m'authentifie (ou m'autentifie, ou m'authenfie, comme on voudra) avec SIMONE et le mot de passe admin.

Bingo !
"L'authentication a réussi."


Bonne soirée.


ℝOGER2327
#7274


Jeudi 5 Palotin 141 (Sainte Poignée, veuve et Sainte Jutte, recluse - fête Suprême Quarte)
5 Floréal An CCXXII, 6,1294h - rossignol
2014-W17-4T14:42:38Z

J'avais pourtant précisé que c'était un essai, qui plus est basé uniquement sur le fait d'essayer d'utiliser la fonction trouvée par Base_ile au message #11
j'ai bien trouvé ca sur le net :

ici LogonUser function (Windows)


une fois la fonction déclarer cela doit donner en VBA :

Private Declare Function LogonUser Lib "ADVAPI32.dll" Alias "LogonUserA" (ByVal lpszUsername As String, ByVal lpszDomain As String, ByVal lpszPassword As String, ByVal dwLogonType As Long, ByVal dwLogonProvider As Long, ByRef phToken As Long) As Long

aprés je ne sais pas l'utiliser

une ame charitable ?

Mais après il faut tester...heureusement que Roger veille au grain.

Apparemment l'API LogonUser ne fait pas de distinction entre les sessions des différents utilisateurs d'un ordinateur (ou alors je n'ai pas trouvé, cf. Ce lien n'existe plus pour ceux que cela intéresse).

Pour tester si le nom d'utilisateur renseigné correspond à celui de la session on peut utiliser l'API GetUserName que j'avais indiqué au message #5.

A tester pour voir si cela est mieux comme cela.

A+
 

Pièces jointes

  • UserName_Password.xls
    50 KB · Affichages: 55
  • UserName_Password.xls
    50 KB · Affichages: 40
  • UserName_Password.xls
    50 KB · Affichages: 55

Staple1600

XLDnaute Barbatruc
Re : Utilisation mot de passe windows

Bonjour à tous


Comme je le disais précédemment, tant qu'ont peut ouvrir le classeur sans activer les macros.
1) J'ouvre le classeur sans activer les macros
2) Je modifie de suite le code VBA de "protection" (ou je le supprime)
Code VBA:
Private Sub cbValider_Click()
Dim rc As Boolean
Dim NomUtilisateur As String
Dim MotDePasse As String
Dim UName As String * 255
Dim L As Long: L = 255
Dim Res As Long

NomUtilisateur = Me.txbUserName.Text
MotDePasse = Me.txbPassWord.Text

Res = GetUserName(UName, L) 'récupère le nom d'utilisateur de la session
UName = Left$(UName, L - 1)
rc = True 'Login(NomUtilisateur & Chr(0), MotDePasse & Chr(0))
If rc = True Then 'And Trim(UName) = usfAutentification.txbUserName.Text Then
MsgBox "L'authentication a réussi.", vbOKOnly, "Authentification"
Else
MsgBox "L'authentication a échoué.", vbOKOnly, "Authentification"
End If
End Sub




3) J'ouvre le classeur en activant les macros et l'authentification là aussi réussit.

PS: Ceci vaut pour tout code VBA, puisque qu'on peut ne pas activer les macros.
Peut-être voir plutôt du côté de la gestion des droits d'accès sous Windows
(mais là on sort d'Excel et VBA)
 

david84

XLDnaute Barbatruc
Re : Utilisation mot de passe windows

Bonjour,
les propositions que j'ai faites dans ce fil ont pour unique but de tenter de répondre à la demande initiale, à savoir :
Bonjour

Il est facile de trouver qui a ouvert la session Windows via Environ("USERNAME")

Est il possible via le VBA d'excel et peut etre un API windows de vérifier un couple Usermame / password ?

Avez vous un bout de code à me proposer ?

Merci d'avance :eek:
J'ai cependant quelques doutes sur le fait que ces propositions soient fonctionnelles dans tous les cas de figure.

Quant à la question de la protection des codes sur Excel les habitués de ce forum savent tous à quoi s'en tenir.
A+
 

david84

XLDnaute Barbatruc
Re : Utilisation mot de passe windows

Il est également possible de connaître le nom d'utilisateur sans utiliser des API : passer par du WMI
Code:
Sub Nom_utilisateur()
Dim objWMIService, objComputer, colComputer, strComputer

strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" _
& strComputer & "\root\cimv2")
Set colComputer = objWMIService.ExecQuery _
("Select * from Win32_ComputerSystem")

For Each objComputer In colComputer
  Debug.Print objComputer.UserName & " est connecté."
Next
End Sub
A+
 

Staple1600

XLDnaute Barbatruc
Re : Utilisation mot de passe windows

Bonjour à tous

david84
Quant à la question de la protection des codes sur Excel les habitués de ce forum savent tous à quoi s'en tenir.
A+
J'aurai du préciser que le premier destinataire de mon précédent message était Base_ile ;)
Ce ne sont pas tes propositions de code que je discute david, j'avertis seulement Base_ile (qui n'est pas un habitué du forum) de l'inefficacité de la protection offerte par Excel (qu'elle soit native ou par VBA)

d'où ma suggestion finale de voir du côté de la gestion des droits sous Windows.

PS1: Base_ile étant satisfait de ta proposition, pas sur qu'il repasse par ici ;)

PS2: Outre WMI, il a aussi vbscript ;), pour avoir l'username (voir le message 6)
https://www.excel-downloads.com/threads/utilisation-mot-de-passe-windows.219510/
 
Dernière édition:

pyfux

XLDnaute Occasionnel
Re : Utilisation mot de passe windows

Bonjour le Forum!

en lisant en diagonale les échanges je conclus que base_ile veut récupérer en VBA le mot de passe de l'utilisateur loggé...
Ah, le coquin!!! C'est pas ici que tu vas trouver!
Et si je sais, je te dis pas! (imagine l'impact de cette découvert dans les entreprises, les admin bloquerait tous les scripts VBA...et beaucoup serait au chomage! :) )
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : Utilisation mot de passe windows

Bonjour à tous

pyfux
Ce n'est pas ce que j'ai compris (que ce soit en diagonale, en horizontal ou vertical)
l’authentification de l'utilisateur de la macro via son mot de passe Windows permettra de m'assurer que les droit attribués (pour la macro) sont les bons...
Naïvement, je m'étais cantonné à comprendre ce que j'ai mis en quote ci-dessus

Et si je sais, je te dis pas...
Cela* se sait depuis longtemps, et cela s'étale sur la vaste toile
(et par forcément dans le darknet comme disent les journalistes)
(*:je parle du mot de passe ;))

Base_ile, tu peux revenir nous confirmer que tu veux pas faire "le vilain", stp?;)
 
Dernière édition:

Discussions similaires

Réponses
2
Affichages
169
Réponses
5
Affichages
408
Compte Supprimé 979
C
Réponses
4
Affichages
628

Statistiques des forums

Discussions
312 241
Messages
2 086 524
Membres
103 242
dernier inscrit
Patoshick