Comprobar password de usuario de windows desde VB

Iniciado por Angeldj27, 3 Junio 2008, 18:42 PM

0 Miembros y 1 Visitante están viendo este tema.

Angeldj27

Hola a Todos...
Soy nuevo por aqui y espero que me puedan ayudar
Tengo un sistema hecho en visual basic y quisiera comprobar el password del usuario desde mi sistema osea esto es cuando se digita el password en un textbox
o tambien una forma de como obtenerlo desde visual basic


"Que vamos a hacer Mañana?..... Lo mismo que hacemos todos los dias Pinky tratar de Conquistar el Mundoooo!!!!!

cobein

#1
A que te referis? el pass de windows o uno de tu sistema

Bueno mire el titulo y supongo que hablas del pass del sistema, esto es lo que uso yo.

Código (vb) [Seleccionar]


'---------------------------------------------------------------------------------------
' Module      : mSystemPassword
' DateTime    : 24/04/08 15:22
' Author      : Cobein
' Mail        : cobein27@hotmail.com
' Usage       : At your own risk.
' WebPage     : http://cobein27.googlepages.com/vb6
' Purpose     : Validate system password
' Requirements: None
' Distribution: You can freely use this code in your own
'               applications, but you may not reproduce
'               or publish this code on any web site,
'               online service, or distribute as source
'               on any media without express permission.
' History     : 24/04/08 - First Cut....................................................
'---------------------------------------------------------------------------------------
Option Explicit

Private Const NERR_BASE                 As Long = 2100
Private Const NERR_PasswordCantChange   As Long = (NERR_BASE + 143)
Private Const NERR_PasswordHistConflict As Long = (NERR_BASE + 144)
Private Const NERR_PasswordTooShort     As Long = (NERR_BASE + 145)
Private Const NERR_PasswordTooRecent    As Long = (NERR_BASE + 146)

Private Declare Function NetUserChangePassword Lib "netapi32.dll" (ByVal sDomain As String, ByVal sUserName As String, ByVal sOldPassword As String, ByVal sNewPassword As String) As Long

Public Function ValidateSysPassword( _
       ByVal sPassword As String, _
       Optional ByVal sUserName As String, _
       Optional ByVal sDomain As String) As Boolean
   
    If Len(sUserName) = 0 Then
        sUserName = Environ$("USERNAME")
    End If

    If Len(sDomain) = 0 Then
        sDomain = Environ$("USERDOMAIN")
    End If
   
    Select Case NetUserChangePassword( _
           StrConv(sDomain, vbUnicode), _
           StrConv(sUserName, vbUnicode), _
           StrConv(sPassword, vbUnicode), _
           StrConv(sPassword, vbUnicode))
   
        Case 0, NERR_PasswordCantChange, _
           NERR_PasswordHistConflict, _
           NERR_PasswordTooShort, _
           NERR_PasswordTooRecent
            ValidateSysPassword = True
    End Select
   
End Function

http://www.advancevb.com.ar
Más Argentino que el morcipan
Aguante el Uvita tinto, Tigre, Ford y seba123neo
Karcrack es un capo.

Angeldj27

Gracias cobein  por tu pronta respuesta

Si es el password del usuario actual de windows que nesesito


"Que vamos a hacer Mañana?..... Lo mismo que hacemos todos los dias Pinky tratar de Conquistar el Mundoooo!!!!!

cobein

http://www.advancevb.com.ar
Más Argentino que el morcipan
Aguante el Uvita tinto, Tigre, Ford y seba123neo
Karcrack es un capo.

Angeldj27

cobein no quiero cambiar el password del usuario en cuestion sino comprobar que el password que estoy digitando es el mismo de este usuario.

Talves me entiendas mejor.

Saludos...


"Que vamos a hacer Mañana?..... Lo mismo que hacemos todos los dias Pinky tratar de Conquistar el Mundoooo!!!!!

seba123neo

Hola,me parece que es con la api wnetverifypassword...

saludos.
La característica extraordinaria de las leyes de la física es que se aplican en todos lados, sea que tú elijas o no creer en ellas. Lo bueno de las ciencias es que siempre tienen la verdad, quieras creerla o no.

Neil deGrasse Tyson

Angeldj27

Gracias por contestar

Mira ya lo intente con esa api pero no me funciono talves me puedas ayudar aki
te dejo el codigo para ver que me dices

Private Declare Function wnetverifypassword Lib "mpr.dll" Alias "wnetverifypassworda" (ByVal lpszpassword As String, ByRef pfmatch As Long) As Long

Public Function verify(ByVal password As String) As Boolean
Dim ret As Long, match As Long
ret = wnetverifypassword(password, match)
If ret Then
  verify = False
Else
  verify = (match <> 0)
End If
End Function


pero no me esta funcionando o talves la estoy implementando mal

Saludos..


"Que vamos a hacer Mañana?..... Lo mismo que hacemos todos los dias Pinky tratar de Conquistar el Mundoooo!!!!!

cobein

No lo vas a cambiar, simplemente llama a la function pasandole el password y te va a devolver True o False si es correcto o no
http://www.advancevb.com.ar
Más Argentino que el morcipan
Aguante el Uvita tinto, Tigre, Ford y seba123neo
Karcrack es un capo.

Angeldj27

Oh si efectivamente ese es el codigo que necesitaba
lo que paso que le di un copy paste a tu codigo y parece que omiti una partesita  del codigo pero lo chekie de nuevo y esta nitido te lo agradezco cobein.

Muchas gracias por ayudarme...
Bay y Saludos...


"Que vamos a hacer Mañana?..... Lo mismo que hacemos todos los dias Pinky tratar de Conquistar el Mundoooo!!!!!

drakolive

esto para que es?  sDomain??
supongamos que yo haga un llamado a esa funcion
msgbox ValidateSysPassword("mipassword","admin", ????????????????)

???