IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Java Discussion :

Savoir si l'utilisateur courant est administrateur (Windows)


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé Avatar de yaraco
    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2010
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2010
    Messages : 89
    Par défaut Savoir si l'utilisateur courant est administrateur (Windows)
    Bonjour,

    Est-il possible de savoir si l'utilisateur courant est administrateur sur sa machine et si oui, comment?

    J'ai une application qui propose des paramètres à modifier uniquement si un utilisateur est administrateur. Or auparavant, elle se basait sur sa possibilité d'écrire dans un fichier situé dans Program Files. Or avec 7 et surement vista, elle a la possibilité d'écrire dans le Program Files émulé dans le virtual store, ce qui fausse donc le test.

    Y'a t'il une fonction qui permet de faire ça?

    Merci d'avance!

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Probablement avec une bibliothèque JNI (j'en connais pas, je me dis juste que ça devrait exister.)

    Il faut comprendre que la notion de "administrateur du système" c'est une notion windowso-windows, donc ce n'est pas vraiment surprenant.
    Mais bon, à la base Java ne propose (encore) aucun mécanisme pour vérifier des droits de l'utilisateur en cours. L'approche étant plutôt d'essayer, et si ça ne marche pas pour des raisons de sécurité, c'est sûrement que l'utilisateur n'en a pas le droit et qu'il va devoir faire sans ou autrement.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre éprouvé Avatar de yaraco
    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2010
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2010
    Messages : 89
    Par défaut
    Ok. Le problème avec l'approche du test est que le virtual store de seven fausse pas mal le truc, le systeme virtualisant "Program Files" et permettant à l'appli d'écrire dedans. Et cette copie semble prioritaire sur l'original, le système se débrouillant pour lier les deux bouts.

    Sinon j'ai trouvé ça tout à l'heure:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
            //true si dans le groupe admin, sinon false
            boolean isAdmin=false;
     
            String groups[] = (new NTSystem()).getGroupIDs();
            for (String group : groups) {
                //Identifiant du groupe administrateur
                if (group.equals("S-1-5-32-544"))
                {
                    isAdmin=true;
                }
            }
    http://tech.chitgoks.com/2010/10/21/...ts-using-java/

    J'ai testé ça sur XP et Seven, ça a l'air de pas trop mal marcher. Mais je ne suis pas très au fait du fonctionnement de Windows, donc si quelqu'un à une autre solution ou une raison de me faire abandonner cette solution, qu'il n'hésite pas!

  4. #4
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Disons que si c'est dans com.sun, tu n'es pas censé savoir que ça existe, et toute mise à jour de Java peut virer cette classe ou changer ce qu'elle fait, sans prévenir.
    (Accessoirement, elle ne fonctionne ou n'existe probablement pas en dehors des implem's Windows, mais bon, en même temps, vérifier si le user est admin, hein... De toute façon au nom tu t'en doutais bien.)

    Bon, et puis va savoir jusqu'à quel point ce nom de groupe est standard, j'en ai aucune idée non plus.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre éprouvé Avatar de yaraco
    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2010
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2010
    Messages : 89
    Par défaut
    Ok, merci bien.

    Pour les maj, on embarque une JVM avec le programme, donc on a au moins le contrôle là dessus.

    Mais je garderai un œil dessus.

    Bonne journée!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 06/11/2014, 14h36
  2. Réponses: 0
    Dernier message: 20/03/2012, 15h02
  3. [ HTML / PHP] Savoir si l'utilisateur en cours est un administrateur ?
    Par doudoustephane dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 01/11/2007, 15h22
  4. [XSL] savoir si le noeud courant est root
    Par luta dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 08/11/2005, 16h18
  5. Savoir si l'utilisateur est administrateur
    Par Don ViP dans le forum Windows
    Réponses: 2
    Dernier message: 26/04/2004, 13h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo