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

Services Web Discussion :

[C#] Pourquoi je ne peux pas m'authentifier ?


Sujet :

Services Web

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    331
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 331
    Points : 180
    Points
    180
    Par défaut [C#] Pourquoi je ne peux pas m'authentifier ?
    Bonjour,

    J'ai développé un service web qui me permet d'incrémenter une valeur sauvegardée dans un fichier text.

    Le service fonctionne parfaitement lorsque je le test depuis un navigateur.

    Lorsque j'effectue l'appel à une méthode de mon service web, j'ai l'erreur d'authentification suivante :
    La demande a échoué avec l'état HTTP 401: Access Denied.

    # SERVICE WEB
    Dans IIS, mon serviceweb tourne dans un répertoire virtuel qui lui est propre. La configuration de la sécurité est cochée uniquement sur : Authentification intégrée windows

    le web.config de mon service web est ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <authentication mode="Windows" /> 
    <authorization>
     <deny users="?">
     <allow users="*">
    </authorization>
    # APPLICATION ASP.NET
    L'application web contient les lignes suivantes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    localhost.Sequenceur oSeq = new localhost.Sequenceur();
    string retour = oSeq.Increment("boc").ToString();
    Response.Write(retour);
    Le web.config de l'application se présente ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <identity impersonate="true"/>
    <authentication mode="Windows" /> 
    <authorization>
     <deny users="?">
     <allow users="*">
    </authorization>
    Le répertoire virtuel IIS contenant mon application web est ainsi configurée :
    Authentification intégrée windows

    Quelqu'un pourrait-il m'éclairer son mon problème de droit d'accès lorsque j'appelle la méthode : oSeq.Increment("boc").ToString(); ?

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2003
    Messages : 15
    Points : 12
    Points
    12
    Par défaut
    Un truc me perturbe dans ton web.config :

    Tu autorises tous les users, mais tu refuses l'anonyme. si tu enlèves la ligne "<deny user="?"> "

    Est ce que ca ne marcherait pas un peu mieux?

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    331
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 331
    Points : 180
    Points
    180
    Par défaut
    J'autorise tous les utilisateurs, sauf ceux qui ne sont pas identifiés... d'ou le deny...

    Ceci dit, même en enlevant le deny, ça ne fonctionne pas.
    Il y a vraissemblablement des subtilités lorsque l'on ajoute la gestion de la sécurité sur les services web...

    Après moulte fouille, je suis tombée sur le site de Krosoft : http://www.microsoft.com/france/tech.../secmod10.mspx

    A priori, je devrais simuler utiliser un proxy...

    J'ai donc ajouté ceci à mon code coté application cliente :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    string MonProxyIP = "10.10.x.x";
    WebProxy proxy = new WebProxy(MonProxyIP,80);
    proxy.Credentials = System.Net.CredentialCache.DefaultCredentials;
    localhost.Sequenceur oSeq = new localhost.Sequenceur();
    oSeq.Proxy = proxy;
    string retour = oSeq.Increment("boc").ToString();
    Response.Write(retour);
    Ca fait tres sofistiqué, mais ça ne fonctionne toujours pas...
    Je continue de chercher... mais si quelqu'un peut m'apporter son aide, ça ne sera pas de refus

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    331
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 331
    Points : 180
    Points
    180
    Par défaut
    Trouvé!

    Il suffisait de rajouter ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    oSeq.Credentials = System.Net.CredentialCache.DefaultCredentials;

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 04/07/2007, 16h06
  2. Réponses: 9
    Dernier message: 14/09/2006, 17h03
  3. [VB.NET] Pourquoi je ne peux pas me connecter à une base SQL ?
    Par Hakki dans le forum Accès aux données
    Réponses: 1
    Dernier message: 13/09/2006, 11h35
  4. [C#] Pourquoi je ne peux pas remplir ma liste ?
    Par cosmos38240 dans le forum Services Web
    Réponses: 5
    Dernier message: 28/08/2006, 15h13
  5. [C#] Pourquoi je ne peux pas sauvegarder le fichier Xml ?
    Par gregoun dans le forum Services Web
    Réponses: 5
    Dernier message: 05/05/2004, 10h00

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