none
Comment tester si l'utilisateur a le statut administrateur RRS feed

  • Question

  • Bonjour,

    En vb.net dans une form, je modifie les registres; or sous windows 7 il faut être en administrateur.

    J'aimerai tester que l'utilisateur a les droits administrateur avant de modifier les registres pour éviter un message d'erreur

    sinon afficher un message indiquant d'exécuter le programme en tant qu'administrateur.

    merci

    vdom


    vdom

    mercredi 8 août 2012 20:33

Réponses

  • Bonjour,

    En fait, j'ai besoin des droits administrateur uniquement au premier lancement de l'application, et je n'ai pas accès aux machines où est installée l'application. La solution est d'exécuter l'appli en tant qu'administrateur en cliquant sur l'exécutable avec le bouton droit (menu contextuel, bien sûr il faut que l'utilisateur ait les droits administrateur).

    De la sorte, le code vb ci-dessus s'exécute correctement.

    Merci pour l'aide.

    vdom 


    vdom

    • Marqué comme réponse Aurel Bera mercredi 26 septembre 2012 12:59
    lundi 24 septembre 2012 08:45

Toutes les réponses

  • Bonjour,

    WindowsIdentity user = WindowsIdentity.GetCurrent(); 
    WindowsPrincipal principal = new WindowsPrincipal(user); 
    if (principal.IsInRole(WindowsBuiltInRole.Administrator) == true)
    {
    // Je suis administrateur
    }

    Cordialement


    Gilles TOURREAU - MVP C#
    Architecte logiciel/Consultant/Formateur Freelance
    Blog : http://gilles.tourreau.fr
    - MCPD : Enterprise Developper / Windows Developper 3.5 / ASP .NET 3.5/4.0
    - MCITP : SQL Server 2008 Developper
    - MCTS : ADO .NET 3.5 / SQL Server 2008 Developper / Windows Forms 3.5 / ASP .NET 3.5/4.0

    • Proposé comme réponse Aurel Bera mardi 18 septembre 2012 08:55
    mercredi 8 août 2012 22:41
    Modérateur
  • Bonjour,

    Est-ce que vous avez testé les solutions proposées ? Merci de partager avec nous les résultats, afin que d'autres personnes avec le même problème puissent profiter de cette solution.

    Cordialement,


    Aurel BERA, Microsoft
    Microsoft propose ce service gratuitement, dans le but d'aider les utilisateurs et d'élargir les connaissances générales liées aux produits et technologies Microsoft. Ce contenu est fourni "tel quel" et il n'implique aucune responsabilité de la part de Microsoft.

    mardi 18 septembre 2012 08:56
  • Bonjour,

    Excusez-moi pour le retard, je n'étais pas disponible.

    Après recherche le code source suivant fonctionne presque ! :

    Imports System.Security.Principal

    Dim user As WindowsIdentity
    user = WindowsIdentity.GetCurrent()
    Dim principal As New WindowsPrincipal(user)

    If (principal.IsInRole(WindowsBuiltInRole.Administrator) = True) Then
        msgbox("'suis administrateur")
    Else
        msgbox("suis pas admin")
    End If

    En effet, sur mon windows 7, je suis le seul compte utilisateur donc administrateur et pourtant il m'affiche que je ne suis pas admin ?

    si vous avez une explication merci.

    Cordialement

    Vdom


    vdom

    samedi 22 septembre 2012 19:34
  • Bonjour,

    Excusez-moi pour le retard, je n'étais pas disponible.

    Après recherche le code source suivant fonctionne presque ! :

    Imports System.Security.Principal

    Dim user As WindowsIdentity
    user = WindowsIdentity.GetCurrent()
    Dim principal As New WindowsPrincipal(user)

    If (principal.IsInRole(WindowsBuiltInRole.Administrator) = True) Then
        msgbox("'suis administrateur")
    Else
        msgbox("suis pas admin")
    End If

    En effet, sur mon windows 7, je suis le seul compte utilisateur donc administrateur et pourtant il m'affiche que je ne suis pas admin ?

    si vous avez une explication merci.

    Cordialement

    Vdom


    vdom

    Bonjour,

    Même si vous êtes dans le groupe "Administrateurs", vous ne pouvez faire des tâches comme le compte administrateur. Ceci est tout à fait normal car l'UAC est activé. Cette méthode empêche les virus de faire ce qu'ils veulent même en étant dans le groupe "Administrateurs".

    Si vous souhaitez utiliser votre application en mode administrateur, ouvrez le fichier app.Manifest (dans l'explorer de projet). Modifiez la section requestedPrivileges selon vos besoin.

    De cette manière votre application demandera les privilèges administrateur lors de son lancement.

    Par ailleurs si vous ne souhaitez pas utiliser ce système est autoriser les utilisateurs à modifier des valeurs d'une clé de registre, octroyez les droits sur la clé au groupe Windows des utilisateurs :

    Accès en faisant clic droit ---> Autorisation sur votre clé de registre


    Merci de valider par "Proposer comme réponse" si celle-ci répond a votre demande !


    • Modifié Lyamine dimanche 23 septembre 2012 21:13
    dimanche 23 septembre 2012 20:10
  • Bonjour,

    En fait, j'ai besoin des droits administrateur uniquement au premier lancement de l'application, et je n'ai pas accès aux machines où est installée l'application. La solution est d'exécuter l'appli en tant qu'administrateur en cliquant sur l'exécutable avec le bouton droit (menu contextuel, bien sûr il faut que l'utilisateur ait les droits administrateur).

    De la sorte, le code vb ci-dessus s'exécute correctement.

    Merci pour l'aide.

    vdom 


    vdom

    • Marqué comme réponse Aurel Bera mercredi 26 septembre 2012 12:59
    lundi 24 septembre 2012 08:45