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

VB.NET Discussion :

Non reconnaissance d'un "Administrateur"


Sujet :

VB.NET

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    110
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 110
    Points : 53
    Points
    53
    Par défaut Non reconnaissance d'un "Administrateur"
    Bonsoir
    Je roule sous Seven (32 bits) 8 GO de ram et 1 TO de disque dur

    Je développe de petits utilitaires persos sous Visual Studio Basic (Visual Studio 2008).

    Au démarrage du PC, je me connecte avec un nom d'utilisateur qui est de type «*Administrateur*»

    Dans mon code VS Basic, je veux vérifier et authentifier ma connexion en tant que «*Administrateur*»*. Pour ce, j'utilise les Classes WindowsIdentity, WindowsPrincipal et l'énumération des rôles (autorisations) WindowsBuiltInRole

    Morceaux de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    '  Instance de WindowsIdentity*: identité de l'utilisateur courant
    Dim win_ident As WindowsIdentity  = WindowsIdentity.GetCurrent()
     
    '  création d'une instance de WindowsPrincipal à partir de l'identité de l'utilisateur courant
    Dim win_princ As   New WindowsPrincipal( win_ident)
     
     
    '  Détermine si l'objet Principal actuel appartient au groupe d'utilisateurs Windows spécifié, ici «*Administrator*»
    If  win_princ.IsInRole( WindowsBuiltInRole.Administrator) then  …...
    Et cette condition n'est jamais «*true*» alors que je suis le seul connecté à mon PC en «*Administrateur*», vérifié dans le «*Panneau de Configuration*»

    Merci d'avance de votre éclairage.

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    C'est normal ; par défaut, sous Vista et Seven, les programmes ne se lancent pas avec les privilèges d'administrateur, même si l'utilisateur est un administrateur. Si tu lances explicitement le programme en tant qu'administrateur (clic droit, "Exécuter en tant qu'administrateur"), IsInRole(Administrator) renverra bien true.

    Si tu veux que le programme se lance toujours avec les privilèges d'admin, il faut créer un manifest pour ton appli

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    110
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 110
    Points : 53
    Points
    53
    Par défaut
    Merci tomlev pour ta réponse très experte.

    En effet:
    Au démarrage de mon PC, Je me connecte en "Administrateur"
    Un raccourci de mon utilitaire est créé sur mon Bureau .
    - Quand je click 2 fois pour exécuter mon utilitaire: je suis reconnu comme "Utilisateur".
    - Quand je click droit et que je choisis dans le menu contextuel "Exécuter en tant qu'administrateur". La fenêtre du Contrôle Utilisateur (UAC) me demande de "Continuer". Et là mon utilitaire me reconnaît bien en tant qu "Administrateur".

    Ce qui confirme bien tes dires. Bravo !!!
    Je ne savais pas que sous Seven l’exécution de programmes était aussi protégée.
    Mais dans ta réponse tu emploies un terme qui m'est complètement inconnu: créer un "manifeste" pour une application ???
    Je vais ouvrir en grand la documentation VS Basic mais si tu peux m'en dire un peu plus , je suis preneur.

    Pour le moment; Grand Merci à toi pour cet enseignement.

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Citation Envoyé par molo2003 Voir le message
    Mais dans ta réponse tu emploies un terme qui m'est complètement inconnu: créer un "manifeste" pour une application ???
    C'est un fichier XML intégré dans l'application qui donne des infos sur son fonctionnement.

    Citation Envoyé par molo2003 Voir le message
    Je vais ouvrir en grand la documentation VS Basic mais si tu peux m'en dire un peu plus , je suis preneur.
    Clic droit sur le projet > ajouter > nouvel élément > Manifeste d'application

    Et dedans tu mets ça :

    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?xml version="1.0" encoding="utf-8"?>
    <asmv1:assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
      <assemblyIdentity version="1.0.0.0" name="MyApplication.app"/>
      <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
        <security>
          <requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
            <requestedExecutionLevel  level="requireAdministrator" uiAccess="false" />
          </requestedPrivileges>
        </security>
      </trustInfo>
      </asmv1:assembly>

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    110
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 110
    Points : 53
    Points
    53
    Par défaut
    Encore merci à toi tomlev pour ton aide.

    Dans mon projet, le menu "Ajouter un élément" me propose pas d'ajouter un manifeste au projet. Il me propose plein de choses: fichier XML, Contrôle personnalisé, Classes, Formulaires, Fichiers de texte et de ressources ... et plein d'autres choses.
    Aurai-je dû choisir "Fichier XML" ???

    Dans mon projet, j'ai affiché le fichier "App-config" (fichier XMLpour activer les fichiers .log des journaux d'évènements) qui commence par la même ligne que ta proposition. J'ai inséré ton code en tenant compte des balises XML qui déterminent des paquets de lignes de code à ne pas interrompre. Donc j'ai inséré au bon endroit. j'ai re compilé et Visual Standard ne m'a même pas insulté (j'y suis habitué ... rires). Mais l'exécution est toujours identique. Confirme moi, mais je pense que ce fichier "app-config" ne se compile pas mais sert au déploiement du projet.
    Conclusion, je n'ai pas été capable d'ajouter un manifeste à mon projet. Et la documentation en ligne ne m'a guerre été d'un secours appréciable.

    Encore merci

  6. #6
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Citation Envoyé par molo2003 Voir le message
    Dans mon projet, le menu "Ajouter un élément" me propose pas d'ajouter un manifeste au projet. Il me propose plein de choses: fichier XML, Contrôle personnalisé, Classes, Formulaires, Fichiers de texte et de ressources ... et plein d'autres choses.
    Aurai-je dû choisir "Fichier XML" ???
    Tu n'as peut-être pas regardé dans la bonne catégorie...
    Sinon tu peux toujours créer le fichier "app.manifest" manuellement

    Citation Envoyé par molo2003 Voir le message
    Dans mon projet, j'ai affiché le fichier "App-config" (fichier XMLpour activer les fichiers .log des journaux d'évènements) qui commence par la même ligne que ta proposition. J'ai inséré ton code en tenant compte des balises XML qui déterminent des paquets de lignes de code à ne pas interrompre. Donc j'ai inséré au bon endroit. j'ai re compilé et Visual Standard ne m'a même pas insulté (j'y suis habitué ... rires). Mais l'exécution est toujours identique. Confirme moi, mais je pense que ce fichier "app-config" ne se compile pas mais sert au déploiement du projet.
    Le fichier de config n'est pas la même chose que le manifest, normal que ça ne marche pas... Et effectivement ça ne se compile pas.

    Quant à la première ligne qui est identique, c'est la même que dans n'importe quel fichier XML

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    110
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 110
    Points : 53
    Points
    53
    Par défaut
    Re bonsoir tomlev

    je viens à l'instant de consulter MSDN en ligne et rechercher "Manifeste"... une réponse m'a éclairé.
    Dans les propriétés de mon projet, au menu "Application" un clic sur "Afficher les paramètres UAC" et là j'ai trouvé ta solution à savoir un fichier XML nommé "app-manifest" où j'ai modifié la ligne pour forcer le niveau d'exécution administrateur. La modification effectuée puis re compilation ... l'exécution a été conforme à ce que j'attendais.

    Grand Merci à toi de ton aide

    Je peux considérer le blème comme résolu ... je en sais pas comment le marquer

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

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