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
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.
'---------------------------------------------------------------------------------------
' 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
Gracias cobein por tu pronta respuesta
Si es el password del usuario actual de windows que nesesito
Ahi puse el code, edite mintras respondias.
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...
Hola,me parece que es con la api wnetverifypassword...
saludos.
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..
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
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...
esto para que es? sDomain??
supongamos que yo haga un llamado a esa funcion
msgbox ValidateSysPassword("mipassword","admin", ????????????????)
???
http://msdn.microsoft.com/en-us/library/aa370650(VS.85).aspx