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

C# Discussion :

Digest authentification : erreur 401


Sujet :

C#

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    537
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 537
    Par défaut Digest authentification : erreur 401
    Bonjour à tous.

    J'ai un petit souci d'authentification j'ai une erreur 401 et je n'arrive pas à comprendre pourquoi.

    Voici mon code :
    Code C# : 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
     
    public void DoRequest(string url,string requestXml, string username, string password)
            {
                CredentialCache cc = new CredentialCache();
                cc.Add(
                    new Uri(url),
                    "Digest",
                    new NetworkCredential(username, password));
     
                var request = (HttpWebRequest)WebRequest.Create(url);
                request.Method = "POST";
                request.PreAuthenticate = true;
               request.Credentials = cc;
     
                byte[] bytes = Encoding.UTF8.GetBytes("request=" +requestXml);
                request.ContentLength = bytes.Length;
                using (var reqStream = request.GetRequestStream())
                {
                    reqStream.Write(bytes, 0, bytes.Length);
                }
                try
                {
                    var response = (HttpWebResponse)request.GetResponse();
                }
                catch (Exception e)
                {
                    MessageBox.Show(e.Message + Environment.NewLine + e.InnerException);
                }
            }

    Le nom d'utilisateur et le mot de passe ont bien sûr été vérifié.
    J'ai beau chercher je ne trouve que des articles qui me ramène à cette solution.

    Quelqu'un aurait il une piste?

    Merci.

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    537
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 537
    Par défaut
    Il manquait ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    request.ContentType = "www-authentification:Digest  qop=\"auth\"";

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    537
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 537
    Par défaut
    Fausse joie c'est l'utilitaire fiddler qui interceptait l'erreur.

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    537
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 537
    Par défaut
    Je continu au cas où ça inspire quelqu'un.

    J'utilise Fiddler 2 pour observer les requête et j'observe que pour mon application j'ai bien une erreur 401 au départ, ce qui est normal pour une authentification digest(firefox l'a aussi), puis j'ai un code 200.
    Donc normalement ça devrait passer.

    Je ne vois pas pourquoi j'ai une erreur sur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var response = (HttpWebResponse)request.GetResponse();

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    537
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 537
    Par défaut
    Après plus d'une semaine j'ai trouvé.

    Il semblerait qu'il y ai un problème quand à l'authentification en mode digest avec .NET lorsque Except 100-Continue est passé.

    Le framework envoi la requête avant qu'il soit invité à le faire.

    Il faut donc :
    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    request.ServicePoint.Expect100Continue = false;

    Et là ça passe.
    Si ça peu servir.

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

Discussions similaires

  1. Erreur 401.2 sur IIS 6.0
    Par Arthis dans le forum ASP.NET
    Réponses: 3
    Dernier message: 14/08/2007, 13h15
  2. Erreur 401.2 sur serveur IIS 6.0
    Par Arthis dans le forum IIS
    Réponses: 0
    Dernier message: 27/07/2007, 10h20
  3. [Mail] ERREUR 401 petit souci
    Par depelek dans le forum Langage
    Réponses: 7
    Dernier message: 07/12/2006, 17h11
  4. Erreur 401 + IIS
    Par DiabloZizi dans le forum Autres Logiciels
    Réponses: 10
    Dernier message: 25/03/2006, 12h26

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