Das ganze Stringkopieren kann man sich sparen
Delphi-Quellcode:
function isPw(const User, Password: String): Boolean;
begin
Result := NetUserChangePassword(nil, PWideChar(WideString(User)),
PWideChar(WideString(Password)), PWideChar(WideString(Password)) = 0;
end;
Delphi-Quellcode:
function isPw(const User, Password: String): Boolean;
var Err: LongWord;
begin
Err := NetUserChangePassword(nil, PWideChar(WideString(User)),
PWideChar(WideString(Password)), PWideChar(WideString(Password));
Result := Err = 0;
if not Result then
ShowMessage(IntToStr(Err) + ': ' + SysErrorMessage(Err));
end;
Was sagt denn die Fehlermeldung?
Hast du es mal mit einer Angabe des Domainnamen versucht?
Schonmal die SSPIValidatePassword.pas versucht?
(ob SysErrorMessage überhaupt ein passendes Ergebnis liefert, weiß ich jetzt nicht)
Und was passiert, wenn du mal das Passwort änderst?
Delphi-Quellcode:
function isPw(const User, Password, NewPassowrd: String): Boolean;
var Err: LongWord;
begin
Err := NetUserChangePassword(nil, PWideChar(WideString(User)),
PWideChar(WideString(Password)), PWideChar(WideString(NewPassowrd));
Result := Err = 0;
if not Result then
ShowMessage(IntToStr(Err) + ': ' + SysErrorMessage(Err));
end;