begin process at 2010 02 10 08:01:43
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Delphi

 > 

Système

 > 

Exécution

 > 

Session administrateur


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Session administrateur

dimanche 4 janvier 2009 à 20:17:26 | Session administrateur

PHIL63

Membre Club
Bonsoir à tous et bonne année :)

J'aurais aimé connaitre la méthode pour savoir si un utilisateur utilise une session administrateur ou bien si il utilise une session utilisateur basique.
.... et si possible que celà fonctionne sous XP et sous Vista
Je n'ai pas trouvé de solution sur le forum en recherchant avec "session, administrateur"


Philippe DROUET
mercredi 7 janvier 2009 à 10:28:00 | Re : Session administrateur

PHIL63

Membre Club
Réponse acceptée !
Bon et bien après avoir navigué un peu partout sur le net....
http://www.delphitricks.com/source-code/systeminfo/check_if_logged_in_as_administrator_nt2000_only.html

*********************************************
const
  SECURITY_NT_AUTHORITY: TSIDIdentifierAuthority =
    (Value: (0, 0, 0, 0, 0, 5));
  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);
      {$R-}
      for x := 0 to ptgGroups.GroupCount - 1 do
        if EqualSid(psidAdministrators, ptgGroups.Groups[x].Sid) then
        begin
          Result := True;
          Break;
        end;
      {$R+}
      FreeSid(psidAdministrators);
    end;
    FreeMem(ptgGroups);
  end;
end;
************************************


Cette discussion est classée dans : utilisateur, session, utilise, administrateur


Répondre à ce message

Sujets en rapport avec ce message

TWebBrowser et Session utilisateur [ par charpy49 ] Bonjour à tous,J'ai une application web qui utilise les sessions utilisateur.lorsque je l'utilise avec TWebBrowser je me log à la premiere page puis l fenêtre [ par frotman ] bonjour tout le monde, je cherche à bloquer une fenêtre de manière à ce que l'on ne puisse pas accèder à d'autres applications jusqu'à ce que l'utilis Changer d'utilisateur d'une session windows sans Ctr + Alt +Supp [ par boosie ] Bonjour tous le monde,en ce moment je suis sur un projet de gestion d'individu avec un controle d'accès.Mon problème ce situe justement à l'accès de l Développement sur 2 comptes un administrateur l'autre utilisateur simple [ par yvessimon ] Bonjour, J'ai pris l'habitude de développer sur le compte administrateur du PC. Je viens de créer un compte utilisateur pour d'autres développements. Utilisation de Delphi [ par sterne29 ] Bonjour,Jai installé Delphi 3 sur XP et sur windows 2000 et j'ai le même soucis sur les 2 systèmes. En ouvrant une session en mode admin, pas de probl probleme de teechart et de serie [ par gg79 ] Bonjour tout le monde, je suis assez novice en pascal. j'utilise delphi et on m'a demandé de réaliser un graphique qui comporte 3 axes! (3 données dif un mot de passe!!! [ par saradelphi5 ] salut tt le monde, je fait une application avec delphi5, pour une solution reseaux, et le probleme est que j'arrive pas a fair (géré )un mot de passe Inputbox avec QuickReport [ par erce78 ] Bonjour,Je suis un utilisateur final d'un logiciel écrit en delphi et utilisant QuickReport pour les états.Je cherche un moyen pour passez une variabl Numérotation [ par slim59 ] Salut, Voilà j'ai un problème pour l'edition d'une liste de mes enregistrement. J'utilise QuickReport pour impression et tout ce passe bien, seulem programmer un systeme de messagerie electronique en c [ par sassoukidz ] bonjour j'ai besoin d'aide a propos de la programmation d'un systeme de messagerie electronique en c qui permet la :création d'un compte de messsageri


Nos sponsors


Sondage...

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,764 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales