Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Permisos de Usuarios (https://www.clubdelphi.com/foros/showthread.php?t=63165)

yoennis 30-01-2009 17:24:00

Permisos de usuario
 
Cómo saber si el usuario en curso tiene permisos administrativos?:confused::confused::confused:

Neftali [Germán.Estévez] 30-01-2009 17:43:39

Busca información de la API NetUserGetInfo; Creo que puede ser lo que necesitas.

También puedes buscar ayuda sobre estas estructuras: USER_INFO_3 y USER_INFO_11

Por último, si es para el usuario actual, posiblemente te sirva algo como esto:

Código Delphi [-]
const
  SECURITY_NT_AUTHORITY: TSIDIdentifierAuthority =
    (Value: (0, 0, 0, 0, 0, 5));

const
  SECURITY_BUILTIN_DOMAIN_RID = $00000020;
  DOMAIN_ALIAS_RID_ADMINS = $00000220;

function IsAdmin: Boolean;
var
  hAccessToken: THandle;
  ptgGroups: PTokenGroups;
  dwInfoBufferSize: DWORD;
  psidAdministrators: PSID;
  x: Integer;
  bSuccess: BOOL;
begin
  Result := False;

  bSuccess := OpenThreadToken(GetCurrentThread, TOKEN_QUERY, True,
    hAccessToken);
  if not bSuccess then
  begin
    if GetLastError = ERROR_NO_TOKEN then
    bSuccess := OpenProcessToken(GetCurrentProcess, TOKEN_QUERY,
      hAccessToken);
  end;

  if bSuccess then
  begin
    GetMem(ptgGroups, 1024);

    bSuccess := GetTokenInformation(hAccessToken, TokenGroups,
      ptgGroups, 1024, dwInfoBufferSize);

    CloseHandle(hAccessToken);

    if bSuccess then
    begin
      AllocateAndInitializeSid(SECURITY_NT_AUTHORITY, 2,
        SECURITY_BUILTIN_DOMAIN_RID, DOMAIN_ALIAS_RID_ADMINS,
        0, 0, 0, 0, 0, 0, psidAdministrators);

      for x := 0 to ptgGroups.GroupCount - 1 do
        if EqualSid(psidAdministrators, ptgGroups.Groups[x].Sid) then
        begin
          Result := True;
          Break;
        end;

      FreeSid(psidAdministrators);
    end;

    FreeMem(ptgGroups);
  end;
end;

(from Yorai Aminov (TeamB))

dec 30-01-2009 17:44:29

Hola,

También puedes echar un vistazo a este hilo.

yoennis 01-02-2009 02:30:22

Permisos de Usuarios
 
Hola:
Les agradezco mucho su intensíon de ayudarme a resolver mi problema con los permisos pero creo que no fue válido puesto que es para Windows XP SP2
y yo cuento con Windows XP SP3. Si es posible que puedan hacer algo por mi en estas circonstancias... pues me responden....Good bye..:confused::confused:

Crandel 01-02-2009 09:27:04

Asi como esta escrito tu mensaje no se entiende. Creo que te refieres a la pregunta que realizaste en este otro hilo. Si es asi, deberias continuar escribiendo en el mismo hilo.

yoennis 02-02-2009 02:19:30

Permisos de usuarios
 
hola:
mira espero que me disculpes si no explique mejor en el Hilo anterior pero lo que pasa es que el codigo que me dieron es para WindowsXP SP2 y yo cuento con WindowsXP SP3 es decir no corre el codigo que me dieron...:confused:


La franja horaria es GMT +2. Ahora son las 02:32:01.

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