Public Property AuthenticationSchemeSelectorDelegate As AuthenticationSchemeSelector
Dim instance As HttpListener Dim value As AuthenticationSchemeSelector value = instance.AuthenticationSchemeSelectorDelegate instance.AuthenticationSchemeSelectorDelegate = value
public AuthenticationSchemeSelector AuthenticationSchemeSelectorDelegate { get; set; }
public: property AuthenticationSchemeSelector^ AuthenticationSchemeSelectorDelegate { AuthenticationSchemeSelector^ get (); void set (AuthenticationSchemeSelector^ value); }
/** @property */ public AuthenticationSchemeSelector get_AuthenticationSchemeSelectorDelegate () /** @property */ public void set_AuthenticationSchemeSelectorDelegate (AuthenticationSchemeSelector value)
public function get AuthenticationSchemeSelectorDelegate () : AuthenticationSchemeSelector public function set AuthenticationSchemeSelectorDelegate (value : AuthenticationSchemeSelector)
ObjectDisposedException
Este objeto se ha cerrado.
Si desea que todas las solicitudes controladas por una instancia determinada de HttpListener utilicen el mismo protocolo de autenticación, no necesita establecer esta propiedad. Para especificar el protocolo que se utilizará para todas las solicitudes de cliente, utilice la propiedad AuthenticationSchemes.
Si el cliente no ha especificado información de autenticación en sus encabezados, HttpListener llama al delegado especificado para cada solicitud de entrada no autenticada a fin de determinar qué protocolo, si se utiliza uno, debe utilizarse para autenticar el cliente. Los métodos GetContext y EndGetContext sólo devuelven una solicitud de cliente de entrada si HttpListener autentica correctamente la solicitud. Si no se puede autenticar una solicitud, HttpListener devuelve automáticamente una respuesta 401. Puede obtener la identidad de un cliente autenticado correctamente mediante la propiedad System.Net.HttpListenerRequest.LogonUserIdentity.
La capacidad para delegar la elección del protocolo de autenticación a un método específico de la aplicación es útil si desea que una instancia de HttpListener utilice protocolos de autenticación diferentes en función de las características de las solicitudes que recibe (por ejemplo, la propiedad Url o UserHostAddress de la solicitud).
Para establecer esta propiedad para habilitar Digest, NTLM o Negotiate se requiere SecurityPermission, ControlPrincipal.
En el ejemplo de código siguiente se establece el valor de esta propiedad.
// Set up a listener. HttpListener listener = new HttpListener(); HttpListenerPrefixCollection prefixes = listener.Prefixes; prefixes.Add(@"http://localhost:8080/"); prefixes.Add(@"http://contoso.com:8080/"); // Specify the authentication delegate. listener.AuthenticationSchemeSelectorDelegate = new AuthenticationSchemeSelector (AuthenticationSchemeForClient); // Start listening for requests and process them // synchronously. listener.Start();
En el ejemplo de código siguiente se proporciona una implementación de un método invocado por un delegado AuthenticationSchemeSelector.
static AuthenticationSchemes AuthenticationSchemeForClient(HttpListenerRequest request) { Console.WriteLine("Client authentication protocol selection in progress..."); // Do not authenticate local machine requests. if (request.RemoteEndPoint.Address.Equals (IPAddress.Loopback)) { return AuthenticationSchemes.None; } else { return AuthenticationSchemes.IntegratedWindowsAuthentication; } }
Windows 98, Windows Server 2003, Windows XP Media Center, Windows XP SP2, Windows XP Starter Edition
.NET Framework no admite todas las versiones de cada plataforma. Para obtener una lista de las versiones admitidas, vea Requisitos del sistema.