Bonjour,
Je développe un projet WEB API 2 et j'essaie de mettre en place une authentification "Basic" sur mon serveur REST. Je rencontre une erreur lorsque je lance mon appli en debug, et je n'en trouve pas la source. Pourriez-vous m'aider svp ?
Code de ma classe :
Erreur au lancement :
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
37 using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Net.Http; using System.Net.Http.Headers; using System.Threading; using System.Threading.Tasks; using System.Web; using System.Web.Http; namespace CalypsoWebApplication.App_Code { //Classe qui ajoute au résultat Http un challenge disant que le serveur demande une authentification public class ResultWithChallenge : IHttpActionResult { private readonly System.Web.Http.IHttpActionResult next; public ResultWithChallenge(IHttpActionResult next) { this.next = next; } public async Task<HttpResponseMessage> ExecuteAsync( CancellationToken cancellationToken) { var res = await next.ExecuteAsync(cancellationToken); if (res.StatusCode == HttpStatusCode.Unauthorized) { res.Headers.WwwAuthenticate.Add( new AuthenticationHeaderValue("Basic", null)); } return res; } } }
Message d'erreur du compilateur: CS0246: Le type ou le nom d'espace de noms 'HttpResponseMessage' est introuvable (une directive using ou une référence d'assembly est-elle manquante ?)
Erreur source:
Ligne 22 : }
Ligne 23 :
Ligne 24 : public async Task<HttpResponseMessage> ExecuteAsync(
Ligne 25 : CancellationToken cancellationToken)
Ligne 26 : {
Fichier source: e:\Users\mehin\Documents\Visual Studio 2013\Projects\Calypso\CalypsoWebApplication\App_Code\ResultWithChallenge.cs Ligne: 24
En regardant sur https://msdn.microsoft.com/fr-fr/library/w7xf6dxs.aspx les différentes sources possibles de cette erreur, je ne vois toujours pas :
- Framework cible .NET 4.5
- Dans les références de mon projet, j'ai bien "System.Net.Http" qui cible System.NetNHttp.dll, version 4.0.0.0
- En essayant de préfixer HttpResponseMessage par System.Net.http, j'ai la même erreur
- Lorsque je clean et build ma solution dans Visual Studio 2013, il ne me sort aucune erreur. J'ai l'erreur uniquement lorsque j'exécute l'application (avec ou sans debug).
- J'avais déjà eu la même erreur en essayant d'utiliser cette classe "HttpResponseMessage" lorsque je voulais ajouter des traces à mon appli. J'avais renoncé faute de pouvoir la résoudre mais là j'en ai vraiment besoin.
Je ne vois pas quels détails ajouter, n'hésitez pas à demander. Merci d'avance
Marc
Partager