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

ASP.NET Discussion :

Accès refusé pour la méthode ManagementObject.Put()


Sujet :

ASP.NET

  1. #1
    Candidat au Club
    Inscrit en
    Février 2012
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Février 2012
    Messages : 3
    Points : 2
    Points
    2
    Par défaut Accès refusé pour la méthode ManagementObject.Put()
    Bonjours à tous.

    Pour faire court, je code actuellement une application en C# (j'utilise les technologie ASP et WMI), et j'utilise le code d'un collègue. Ce code est fonctionnel (pas de problème dans une autre application), mais visiblement la façon dont je l'ai implémenté pose problème puisque j’obtiens l'exception suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    System.Management.ManagementException: Accès refusé
    à System.Management.ManagementException.ThrowWithExtendedInfo(ManagementStatus errorCode)
    à System.Management.ManagementObject.Put(PutOptions options)
    à MonProjet.Classes.Drivers.addPrinterPort(String ip, ManagementScope oMS)
    La méthode addPrinterPort() doit normalement créer un nouveau port pour une imprimante.
    Voilà le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    public bool addPrinterPort(string ip, ManagementScope oMS)
            {
     
                ManagementPath managementPath;
                ManagementObject port;
                PutOptions putOptions;
     
                try
                {
                    oMS.Connect();
                    managementPath = new ManagementPath("Win32_TCPIPPrinterPort");
                    port = new ManagementClass(oMS, managementPath, null).CreateInstance();
     
                    port.SetPropertyValue("Name", "IP_" + ip);
                    port.SetPropertyValue("Protocol", 1);
                    port.SetPropertyValue("HostAddress", ip);
                    port.SetPropertyValue("PortNumber", 9100);
                    port.SetPropertyValue("SNMPEnabled", true);
     
                    putOptions = new PutOptions();
                    putOptions.UseAmendedQualifiers = true;
                    putOptions.Type = PutType.UpdateOrCreate;
                    port.Put(putOptions);
                }
                catch (ManagementException mEx)
                {
                    Domaines.debug += "[MANAGEMENT EXCEPTION]" + mEx.GetBaseException() + Environment.NewLine;
                    return (true);
                }
                catch (Exception ex)
                {
                    Domaines.logException(ex, true);
                    return true;
                }
                return false;
            }
    Je cherche depuis quelques jours l'origine du problème, et je pense qu'il s'agit d'un problème de connexion. Seulement là encore j'ai repris les paramètre de connexion du code de mon collègue, je vous montre à tout hasard la création de l'objet oMS qui est ensuite passé à la méthode :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    public bool connexion()
            {
                try
                {
                    /* configuration de la connexion */
                    this.oConnectOptions = new ConnectionOptions();
                    this.oConnectOptions.Username = this.ip + "\\" + this.login;
                    this.oConnectOptions.Password = this.password;
                    this.oConnectOptions.Impersonation = ImpersonationLevel.Impersonate;
                    this.oConnectOptions.EnablePrivileges = true;
                    /* Création de la connexion */
                    this.oMS = new ManagementScope(this.path, this.oConnectOptions);
                    this.oMS.Connect();
                }
                catch (Exception ex)
                {
                    logException(ex, true);
                    return (true);
                }
                return (false);
            }
    Merci d'avance à qui pourra me mettre sur une piste pour résoudre ce problème

  2. #2
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 314
    Points
    13 314
    Par défaut
    Bonjour

    déjà merci de donner le détail de l'exception : présence d'une InnerException, etc ...

    Ensuite, à première vue, ce pourrait être un problème de privilèges utilisateur.

    Je ne réponds pas aux questions techniques par MP ! Le forum est là pour ça...


    Une réponse vous a aidé ? utiliser le bouton

    "L’ennui dans ce monde, c’est que les idiots sont sûrs d’eux et les gens sensés pleins de doutes". B. Russel

  3. #3
    Candidat au Club
    Inscrit en
    Février 2012
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Février 2012
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Salut Bluedeep, merci de ta réponse

    Comme je l'ai dit je débute en c#, et j'ai cherché mais je ne vois pas ce que tu entend par "InnerException", pourrais-tu m'indiquer comment la catch ?

    Je penche aussi pour un problème dans la connexion, ce qui m'étonne c'est que j'ai repris la même configuration que le projet de mon collègue qui fonctionne parfaitement lui.

  4. #4
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 314
    Points
    13 314
    Par défaut
    Citation Envoyé par damjuve Voir le message
    Salut Bluedeep, merci de ta réponse

    Comme je l'ai dit je débute en c#, et j'ai cherché mais je ne vois pas ce que tu entend par "InnerException", pourrais-tu m'indiquer comment la catch ?

    Je penche aussi pour un problème dans la connexion, ce qui m'étonne c'est que j'ai repris la même configuration que le projet de mon collègue qui fonctionne parfaitement lui.
    Tu positionnes un breakpoint à la première ligne du bloc "catch" et tu regardes toutes les propriétés de l'exception sous debugger. Et "tu nous dis quoi"

    Je ne réponds pas aux questions techniques par MP ! Le forum est là pour ça...


    Une réponse vous a aidé ? utiliser le bouton

    "L’ennui dans ce monde, c’est que les idiots sont sûrs d’eux et les gens sensés pleins de doutes". B. Russel

  5. #5
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 314
    Points
    13 314
    Par défaut
    Citation Envoyé par damjuve Voir le message
    Je penche aussi pour un problème dans la connexion, ce qui m'étonne c'est que j'ai repris la même configuration que le projet de mon collègue qui fonctionne parfaitement lui.
    Non, je pense plus à un problème de droits utilisateurs.

    Je ne réponds pas aux questions techniques par MP ! Le forum est là pour ça...


    Une réponse vous a aidé ? utiliser le bouton

    "L’ennui dans ce monde, c’est que les idiots sont sûrs d’eux et les gens sensés pleins de doutes". B. Russel

  6. #6
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 314
    Points
    13 314
    Par défaut
    Je n'avais pas vraiment regardé le code mais en le lisant en diagonal il y a déjà un truc qui est bizarre ici :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
                    /* configuration de la connexion */
                    this.oConnectOptions = new ConnectionOptions();
                    this.oConnectOptions.Username = this.ip + "\\" + this.login;
                    this.oConnectOptions.Password = this.password;
                    this.oConnectOptions.Impersonation = ImpersonationLevel.Impersonate;
    En effet, la ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    this.oConnectOptions.Impersonation = ImpersonationLevel.Impersonate
    implique normalment que tu fasses la connexion par emprunt d'identité de l'appelant; or, dans ce cas, préciser un user/mot de passe n'a pas trop de sens. (je précise que je ne connais pas cette classe ConnectionOptions en particulier).

    Mais clairement, il faut donner les détails de l'exception, sinon ça va être dur d'aller plus loin.

    Je ne réponds pas aux questions techniques par MP ! Le forum est là pour ça...


    Une réponse vous a aidé ? utiliser le bouton

    "L’ennui dans ce monde, c’est que les idiots sont sûrs d’eux et les gens sensés pleins de doutes". B. Russel

Discussions similaires

  1. Accès refusé pour installer un antivirus
    Par SmileSoft dans le forum Sécurité
    Réponses: 6
    Dernier message: 20/04/2009, 15h03
  2. [EasyPHP] Accès refusé pour l'utilisateur: 'root'@'@localhost'
    Par faamugol dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 9
    Dernier message: 06/04/2009, 10h39
  3. accés refusé pour un disque externe
    Par don sedos dans le forum Windows XP
    Réponses: 3
    Dernier message: 19/03/2008, 15h15
  4. erreur 1045: Accès refusé pour l'utilisateur mot de passe : OUI
    Par antrax2013 dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 31/05/2006, 17h03

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