Avatar billede softtail Nybegynder
22. oktober 2005 - 18:01 Der er 1 kommentar og
1 løsning

NT users medlemsskab af NT usergroups

Hejsa.

Er der en ekspert, der kan oplyse hvordan man via Delphi kan udlede hvilke Windows NT Usergroups en given user er inkluderet i?

Funktionen skal bruges til rettighedsstyring i et program, hvor rettighederne gerne skal kunne styres via gruppemedlemsskaber i et Windows NT domain.

VH Softtail.
Avatar billede kammeyer Nybegynder
23. oktober 2005 - 04:54 #1
Tjek

NetUserEnum - eller NetEnumUser.
Avatar billede softtail Nybegynder
09. november 2005 - 15:42 #2
type
PGroupUsersInfo0 = ^_GROUP_USERS_INFO_0;
_GROUP_USERS_INFO_0 = packed record
  grui0_name: LPWSTR;
end;
TGroupUsersInfo0 = _GROUP_USERS_INFO_0;
GROUP_USERS_INFO_0 = _GROUP_USERS_INFO_0;


function TMainForm.GetDomainServer(const DomainName: String): String;
var
  pwDomain:pWideChar;
  pwServer:pWideChar;
begin
  GetMem(pwDomain, 512);
  GetMem(pwServer, 512);
  StringToWideChar(DomainName, pwDomain, 255);
  NetGetAnyDCName(nil, pwDomain, @pwServer);
  Result := WideCharToString(pwServer);
  NetApiBufferFree(pwServer);
  FreeMem(pwDomain, 512);
end;


function TMainForm.GetGroups(DomainServer: String; UserName: String): String;
type
TGroupUsersInfoArray = array of TGroupUsersInfo0;
var
Info: PGroupUsersInfo0;
Sn, Un: PWideChar;
entriesread, totalentries: DWORD;
I, A, B, Size: Integer;
P: Pointer;
begin

Sn := StringToOLEStr(DomainServer);

Un := StringToOleStr(UserName);

if NetUserGetGroups(Sn, Un, 0, @Info, DWORD(-1), entriesread, totalentries) = NO_ERROR  then
try
  if entriesread > 0 then
    for I := 0 to entriesread - 1 do
      Result := Result + TGroupUsersInfoArray(@(Info^))[I].grui0_name + ' ';
finally
  NetApiBufferFree(Info);
end;
end;
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester