Hi!

I'm having problems with enabling Basic authentication in 
System.Net.HttpListener. I am trying code from  a lot of forums and so  on, 
with no result.

This code, for example:

"""
using System.IO;
using System.Web;
using System.Net;
using System;

public class A { static void Main(){

HttpListener listener = new HttpListener();

/* Here is the important code */
listener.AuthenticationSchemeSelectorDelegate += delegate{
   Console.WriteLine("Asking for authentication scheme");
   return AuthenticationSchemes.Basic;
};

/* end of important code */

listener.Prefixes.Add("http://*:1234/";);
listener.Start();
HttpListenerContext context = listener.GetContext();
HttpListenerRequest request = context.Request;
Console.WriteLine("Received: {0} {1} from 
{2}",request.HttpMethod,request.Url,request.RemoteEndPoint);
if(context.User == null){
     Console.WriteLine("No user!");
}else{
    Console.WriteLine(context.User.Identity == null);
    HttpListenerBasicIdentity identity = 
(HttpListenerBasicIdentity)context.User.Identity;
    Console.WriteLine("Name = {0}; password = 
{1}",identity.Name,identity.Password);
}
HttpListenerResponse response = context.Response;
string responseString = "<HTML><BODY> Hello world!</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();

} }
"""

and entering in http://localhost:1234/ returns the Hello World... but it never 
says "Asking for authentication scheme" and context.User is null. And I don't 
find any way to force the browser to ask for authentication. Neither even 
entering in http://user:[EMAIL PROTECTED]:1234/ helps.

Replacing the "important code" by:
"""
listener.AuthenticationSchemes = AuthenticationSchemes.Basic;
"""
does have the same effect.

Did anybody manage to make this work under Mono? Thank you very much.
 
By the way, I'm running:
"""
$ mcs --version
Mono C# compiler version 1.2.2.1
$ mono --version
Mono JIT compiler version 1.2.2.1, (C) 2002-2006 Novell, Inc and Contributors. 
www.mono-project.com
        TLS:           normal
        GC:            Included Boehm (with typed GC)
        SIGSEGV:       normal
        Disabled:      none
"""
from the Mono 1.2.2.1 generic Linux on x86 installer.

                
---------------------------------

LLama Gratis a cualquier PC del Mundo.
Llamadas a fijos y móviles desde 1 céntimo por minuto.
http://es.voice.yahoo.com
_______________________________________________
Mono-list maillist  -  [email protected]
http://lists.ximian.com/mailman/listinfo/mono-list

Reply via email to