Je dois mettre en œuvre un petit serveur REST pour gérer une base de données distante, rien de spécial. La sécurité n'est pas un problème critique, car ce serveur doit s'exécuter dans un environnement intranet; nous voulons seulement filtrer les utilisateurs et les rediriger vers des ressources appropriées.HttpListener Digest Auth schéma
HttpListener listener = new HttpListener();
listener.Realm = "testserver1";
listener.AuthenticationSchemes = AuthenticationSchemes.Basic;
foreach (string s in prefixes)
{
listener.Prefixes.Add(s);
}
listener.Start();
Console.WriteLine("Listening...");
HttpListenerContext context = listener.GetContext();
HttpListenerRequest request = context.Request;
HttpListenerResponse response = context.Response;
string responseString = "<HTML><BODY>" + DateTime.Now.ToString() + "</BODY></HTML>";
byte[] buffer = System.Text.Encoding.UTF8.GetBytes(responseString);
response.ContentLength64 = buffer.Length;
System.IO.Stream output = response.OutputStream;
output.Write(buffer, 0, buffer.Length);
output.Close();
listener.Stop();
Ce code (extrait du site de Microsoft) fonctionne parfaitement du côté serveur et -Lorsque le listener.GetContext() returns- Je peux vérifier le nom d'utilisateur et mot de passe de l'objet utilisateur et d'établir la façon de traiter la demande. Modification des initiales listener.AuthenticationSchemes = AuthenticationSchemes.Basic à
listener.AuthenticationSchemes = AuthenticationSchemes.Digest
il cesse de fonctionner comme je pense et que le schéma de base auth font efficacement. Le listener.GetContext() call never returns. HttpListener SEEMS pour bloquer toute demande et, du côté client, je continue à être invité pour le nom d'utilisateur et mot de passe. J'ai essayé l'utilisateur local, l'administrateur local, l'utilisateur de domaine, l'administrateur de domaine, environ 500 noms de fantaisie: rien ne fonctionne. GetContext() plus de retours. Pouvez-vous m'aider?
Merci d'avance.
L.