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

IIS Discussion :

Authentification d'un Objet-COM


Sujet :

IIS

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 7
    Points : 5
    Points
    5
    Par défaut Authentification d'un Objet-COM
    Bonjour,

    Nous disposons d'un IIS dans une DMZ.
    Ce serveur est en workgroup.

    Il doit accéder à un serveur du domaine en production en appelant un objet COM distant.
    Pour le moment cela ne fonctionne pas et nous obtenons l'erreur : 'Authentification incorrect : utilisateur ou mot de passe erroné' ...

    Savez-vous comment appeler cette objet-COM distant et surtout comment lui passez les paramètres Utilisateur/mot de passe ?

    Petit schéma explicatif :

    http://www.hostingpics.net/viewer.ph...4ObjetCOM3.png

  2. #2
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Si vous vous connectez au composant COM distant via CoCreateInstanceEx, la structure COSERVERINFO possède un membre qui est une structure COAUTHINFO, laquelle contient un pointeur vers une structure COAUTHIDENTITY...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  3. #3
    Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2016
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2016
    Messages : 2
    Points : 3
    Points
    3
    Par défaut
    Bonjour Médinoc,

    Déjà merci pour votre réponse.

    Pour l'appel du composant COM distant, nous utilisons la méthode suivante C# dans un Service WFC sur IIS :

    System.Type ObjComType = System.Type.GetTypeFromProgID("MonObjetCom.coMonObjetCom", "MON_SERVEUR", true);

    Mais elle renvoie NULL, car le compte n'a pas les autorisations, c'est pourquoi nous souhaiterions le forcer avec avec un compte connu de MON_SERVEUR.

    Du côté du serveur distant, via dcomcnfg nous ne pouvons pas habiliter notre IIS (MON_SERVEUR_IIS\IIS_IUSRS) car il n'est pas dans le domaine.

    Cordialement,

  4. #4
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Ben je ne sais pas quoi dire d'autre.
    À votre place, je ferais un composant COM en C++ non-managé local à la machine dans la DMZ, qui se connecterait avec le vrai CoCreateInstanceEx() et servirait de proxy entre les deux (voire passerait carrément le pointeur d'interface à l'appelant et laisserait le marshaling faire le reste).
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  5. #5
    Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2016
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2016
    Messages : 2
    Points : 3
    Points
    3
    Par défaut
    Bonjour,

    Il suffisait d'autoriser l'accès "Anonymous logon", compte passé par l'IIS.

    Les étapes :
    - commande gpedit.msc, "Stratégie Ordinateur local / Configuration Ordinateur / Paramètres Windows / Paramètres de sécurité / Options de sécurité " mettre à "Activé" "Accès réseau : les autorisations spécifiques des utilisateurs appartenant qu groupe Tout le monde s'appliquent aux utilisateurs anonymes".
    - commande dcomcnfg, pour son application COM+ ajouter l'utilisateur Anonymous logon
    - sur la dll de l'objet COM ajouter le droit pour l'utilisateur Anonymous logon.

    Cordialement,

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