Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   API de Windows (https://www.clubdelphi.com/foros/forumdisplay.php?f=7)
-   -   Cómo establecer la opción "Usuario no puede cambiar contraseña" (https://www.clubdelphi.com/foros/showthread.php?t=73504)

fide_uci 27-04-2011 08:02:02

Cómo establecer la opción "Usuario no puede cambiar contraseña"
 
Hola amigos. Estoy haciendo una aplicacion que me permita modificar varias cosas de los usuarios que estan en el LDAP y en Dominios WiNNT. Todo iba bien, excepto que cuando fuy a ver como establecer/leer el atributo "User cannot changue password" me encontre con que no se modificaba directamente en el atributo. Me puse a buscar y encontre como se hace pero los codigos son en VIsual Basic o C#. Alguien pudiera ayudarme con esto?. Aca les dejo los codigos que no me funcionan y los links a los sitios que hablan de como modificar este parametro mediante programacion. Gracias desde ya...

Código Delphi [-]
procedure (...)
var
  Usr: IADsUser;
  dominio, usuario: string;
begin
    //Es aca donde se obtiene si esta marcado o no, justo cuando el mouse se levanta

    dominio := 'clubdelphi.com';
    usuario := 'fide_uci';
    

  try
    ADsGetObject('WinNT://' + dominio + '/' + usuario, IADsUser, usr);

    Assert(usr <> nil);

    if chk_no_pass_expire.Checked then
      Usr.Put('UserFlags', Usr.Get('UserFlags') OR ADS_UF_PASSWD_CANT_CHANGE)
    else
      Usr.Put('UserFlags', Usr.Get('UserFlags') XOR ADS_UF_PASSWD_CANT_CHANGE);
      Usr.SetInfo;
  except
    on E: EOleException do begin
      chk_no_pass_chang.Checked := not (chk_no_pass_chang.Checked);
      if E.ErrorCode = -2147024891 then
        Application.MessageBox('Ha ocurrido un error al intentar ejecutar esta acción debido a que no tiene los privilegios suficientes.', 'Error', MB_OK + MB_ICONERROR)
      else
        ShowMessage(E.Message);
    end;
  end;

Aca los Links de algunas de las paginas que explican como se hace esto actualmente. Creo que los codigos esos que puse ahi funcionan con Windows 2000, pero ya con Windows 2003 Server es de otra forma que es la que explican en estos links, con las ACL.

http://support.microsoft.com/kb/301287
http://msdn.microsoft.com/en-us/libr...=vs.85%29.aspx
http://www.experts-exchange.com/OS/M..._24902648.html
http://support.microsoft.com/kb/305144
http://msdn.microsoft.com/en-us/library/Aa746398
http://msdn.microsoft.com/en-us/library/ms677840

Por fis esto y otras pocas cositas son las que me faltan para terminar este proyecto que estoy haciendo. Cuando lo termine quisiera subirlo a clubdelphi para que otras personas que quieran aprender sobre LDAP, ADSI y todas estas cuestiones lo tengan a mano como una referencia para estudiar o para comenzar.

fide_uci 28-04-2011 02:29:55

Helloooooo. NAdie me ayuda plz ???


La franja horaria es GMT +2. Ahora son las 00:42:22.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi