Gestion des sites avec la version 7.2.7

Idées d'amélioration pour le programme.
Répondre
Denis Fradet
Messages : 148
Enregistré le : 20 juin 2009, 16:19

Gestion des sites avec la version 7.2.7

Message par Denis Fradet »

Bonsoir,

Je viens d'installer la version 7.2.7 (avec désintallation de la 7.2.6) et j'ai des problèmes avec les droits lorsque je veux ajouter ou modifier un site, il me dit que je ne suis pas administrateur de machine ... alors que je suis administrateur de ma machine :twisted:

J'ai bien vérifié, je suis en XP SP3 et je suis bien admin, mais pas admin en direct de la machine mais je fait partie du groupe des admins sur ma machine. J'ai essayé avec le logon local d'admin de la machine (ekadmin :lol: ) et la ça marche.

J'ai vérifié le droit du répertoire dbase et je peux bien écrire dessus, j'ai lancer le programme de base de donnée et je peux mettre à jour en utilisant la version 7.2.6

J'ai l'impression qu'il y a une subtilité dans les logons admin que Prism me gère pas

A propos du logon admin, Il faut entrer un clé de validation alors que c'est la même personne et la même machine :x Et pire impossible de le démarrer car en changeant de compte et bien les fichiers de "my documents" ne sont pas là :cry: Bref ça m'a bien énervé ... Ca serait mieux de pouvoir choisir un répertoire par défaut comme le catalogue.

Pendant que j'y suis la 7.2.7 et 6 me dise que je n'ai pas les droits admin pour faire la MAJ ... Bon ça fait des mois que je le fait et ça marchait aussi avec la V6
Cyril Cavadore
Messages : 4492
Enregistré le : 18 juin 2009, 22:41
Localisation : 42

Re: Gestion des sites avec la version 7.2.7

Message par Cyril Cavadore »

Bonjour,

la base de donnée gerant les sites etant dans les repertoires c:\program files\prism\prism_v7\dbase, windows ne va qu'autoriser les administrateurs d'y toucher... Comme un message propre n'est pas renvoyé par Windows, j'ai du faire cette fonction :

Code : Tout sélectionner

function IsWindowsAdmin: Boolean;

const
  SECURITY_NT_AUTHORITY: TSIDIdentifierAuthority =  (Value: (0, 0, 0, 0, 0, 5));
  SECURITY_BUILTIN_DOMAIN_RID                    = $00000020;
  DOMAIN_ALIAS_RID_ADMINS                        = $00000220;

var
  hAccessToken      : THandle;
  ptgGroups         : PTokenGroups;
  dwInfoBufferSize  : DWORD;
  psidAdministrators: PSID;
  i                 : 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 i := 0 to ptgGroups.GroupCount - 1 do
        if EqualSid(psidAdministrators, ptgGroups.Groups[i].Sid) then
        begin
          Result := True;
          Break;
        end;
      {$R+}

      FreeSid(psidAdministrators);
    end;
    FreeMem(ptgGroups);
  end;
end;
que j'ai testée chez moi ...
Je pense que tu as un PC configuree par une entreprise avec des droits tordus .. (Ekadmin ca me dit qq chose...:-)
Si tu es familier avec le code, essaie cette fonction...

Cyril
Cyril Cavadore, ALCOR-SYSTEM, Auteur de PRISM
http://www.alcor-system.com

Pour reporter vos problème, la marche à suivre est ici
viewtopic.php?f=7&t=1403
Denis Fradet
Messages : 148
Enregistré le : 20 juin 2009, 16:19

Re: Gestion des sites avec la version 7.2.7

Message par Denis Fradet »

Bonjour Cyril,

Malheureusement je ne connais pas le C seulement VB

J'ai lancer la commande GPRESULT qui me donne les résultat suivant

Code : Tout sélectionner


   The computer is a part of the following security groups:
   --------------------------------------------------------
       BUILTIN\Administrators
       Everyone
       Debugger Users
       BUILTIN\Users
       NT AUTHORITY\NETWORK
       NT AUTHORITY\Authenticated Users
       Lenomdemamachine$
       Domain Computers

Code : Tout sélectionner


    The user is a part of the following security groups:
    ----------------------------------------------------
        Domain Users
        Everyone
        Debugger Users
        BUILTIN\Administrators
        BUILTIN\Users
        NT AUTHORITY\INTERACTIVE
        NT AUTHORITY\Authenticated Users
        LOCAL
Et oui il y a des entreprises qui aiment bien mettre des batons dans les roues des utilisateurs, y a pas photo :lol:

PS : j'ai fait une recherche sur le web et j'ai trouvé ce lien pour du VB
http://www.martin2k.co.uk/forums/lofive ... ?t606.html et j'ai copié collé le code et je suis bien un admin
Cyril Cavadore
Messages : 4492
Enregistré le : 18 juin 2009, 22:41
Localisation : 42

Re: Gestion des sites avec la version 7.2.7

Message par Cyril Cavadore »

Argh du VB ...
Ca ressemble a mon code, mais il doit y avoir une petite nuance....
Faut comparer..
Cyril
Cyril Cavadore, ALCOR-SYSTEM, Auteur de PRISM
http://www.alcor-system.com

Pour reporter vos problème, la marche à suivre est ici
viewtopic.php?f=7&t=1403
Denis Fradet
Messages : 148
Enregistré le : 20 juin 2009, 16:19

Re: Gestion des sites avec la version 7.2.7

Message par Denis Fradet »

Cyril,

J'ai regardé différents codes VB ou C et dans tous les cas le GetTokenInformation se fait en 2 passe, la première pour avoir la taille du buffer et la deuxième pour récupérer les données.

Soit dit en passant, le code que tu montre si pour une raison X ou Y ne trouve pas le données que tu cherche dis que tu n'est pas admin, ce qui vient à dire que "l'absence de preuve est la preuve de l'absence"
Cyril Cavadore
Messages : 4492
Enregistré le : 18 juin 2009, 22:41
Localisation : 42

Re: Gestion des sites avec la version 7.2.7

Message par Cyril Cavadore »

Denis Fradet a écrit :Cyril,

J'ai regardé différents codes VB ou C et dans tous les cas le GetTokenInformation se fait en 2 passe, la première pour avoir la taille du buffer et la deuxième pour récupérer les données.

Soit dit en passant, le code que tu montre si pour une raison X ou Y ne trouve pas le données que tu cherche dis que tu n'est pas admin, ce qui vient à dire que "l'absence de preuve est la preuve de l'absence"
Salut,
1. c'est pas du C mais du pascal ou du Delphi objet
2. J'ai imprimé ta page de code en VB , il faut que je la compare a mon code, mais tu peux aussi faire l'excercice ;-)))
On avance...
A+
Cyril Cavadore, ALCOR-SYSTEM, Auteur de PRISM
http://www.alcor-system.com

Pour reporter vos problème, la marche à suivre est ici
viewtopic.php?f=7&t=1403
Denis Fradet
Messages : 148
Enregistré le : 20 juin 2009, 16:19

Re: Gestion des sites avec la version 7.2.7

Message par Denis Fradet »

Cyril,

J'ai cherché, et il faut appeler la fonction GetTokenInformation deux fois, la première pour la taille du buffer, la seconde pour récupérer les données

http://msdn.microsoft.com/en-us/library ... S.85).aspx

j'ai fait tourner le code VB que j'ai indiqué en lien, et la taille du buffer renvoyeé est de 5536 alors que ton code n'est prévoit que 1024. Pour en être sûr j'ai forcé la taille du buffer à 1024 (après le premier GetTokenInformation) et là il me dit que je ne suis pas admin. Je l'ai ensuite forcé à 10240 et je redeviens admin.

Comme c'est un portable de travail, la liste des groupes auquels j'appartiens est loungue comme le bras, ce qui est peut être la source du problème. Le logon admin :roll: que j'ai utilisé étant local la liste des groupes est plutôt restreinte
A+
Cyril Cavadore
Messages : 4492
Enregistré le : 18 juin 2009, 22:41
Localisation : 42

Re: Gestion des sites avec la version 7.2.7

Message par Cyril Cavadore »

ok, bien vu...
Bon, j'ai fait la modif,

Code : Tout sélectionner

    
bSuccess :=GetTokenInformation(hAccessToken,TokenGroups,Nil,0,RequiredInfoBufferSize);
If (RequiredInfoBufferSize>0) then  //  bSuccess=False!!
Begin
  GetMem(ptgGroups,RequiredInfoBufferSize);
RequiredInfoBufferSize : me retourne 260 octets, et je suis tjrs admin
Ca doit varier d'une machise a une autre
Dans la 7.2.8

A+
Cyril Cavadore, ALCOR-SYSTEM, Auteur de PRISM
http://www.alcor-system.com

Pour reporter vos problème, la marche à suivre est ici
viewtopic.php?f=7&t=1403
Répondre