AuthenticationSchemeSelector Delegado

Definición

Selecciona el esquema de autenticación para una instancia de HttpListener.

public delegate System::Net::AuthenticationSchemes AuthenticationSchemeSelector(HttpListenerRequest ^ httpRequest);
public delegate System.Net.AuthenticationSchemes AuthenticationSchemeSelector(HttpListenerRequest httpRequest);
type AuthenticationSchemeSelector = delegate of HttpListenerRequest -> AuthenticationSchemes
Public Delegate Function AuthenticationSchemeSelector(httpRequest As HttpListenerRequest) As AuthenticationSchemes 

Parámetros

httpRequest
HttpListenerRequest

La instancia de HttpListenerRequest para la cual se selecciona un esquema de autenticación.

Valor devuelto

Uno de los valores AuthenticationSchemes que indica el método de autenticación que se utiliza para la solicitud de cliente especificada.

Ejemplos

En el ejemplo siguiente se usa una instancia de este tipo para establecer la AuthenticationSchemeSelectorDelegate 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();
' Set up a listener.
Dim listener As New HttpListener()
Dim prefixes As HttpListenerPrefixCollection = listener.Prefixes
prefixes.Add("http://localhost:8080/")
prefixes.Add("http://contoso.com:8080/")

' Specify the authentication delegate.
listener.AuthenticationSchemeSelectorDelegate = New AuthenticationSchemeSelector(AddressOf AuthenticationSchemeForClient)

' Start listening for requests and process them 
' synchronously.
listener.Start()

En el ejemplo siguiente se muestra la implementación del método invocado por el AuthenticationSchemeSelector delegado en el ejemplo anterior.

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;
    }
}
Private Shared Function AuthenticationSchemeForClient(ByVal request As HttpListenerRequest) As AuthenticationSchemes
    Console.WriteLine("Client authentication protocol selection in progress...")
    ' Do not authenticate local machine requests.
    If request.RemoteEndPoint.Address.Equals(IPAddress.Loopback) Then
        Return AuthenticationSchemes.None
    Else
        Return AuthenticationSchemes.IntegratedWindowsAuthentication
    End If
End Function

Comentarios

Las instancias usan HttpListener delegados de este tipo para seleccionar un esquema de autenticación en función de las características de una solicitud.

Se AuthenticationSchemeSelector pasa un delegado un HttpListenerRequest objeto para cada solicitud entrante que no ha proporcionado información de autenticación. El método invocado por el delegado usa el HttpListenerRequest objeto y cualquier otra información disponible para decidir qué esquema de autenticación se va a requerir. El delegado se especifica mediante la AuthenticationSchemeSelectorDelegate propiedad .

Métodos de extensión

GetMethodInfo(Delegate)

Obtiene un objeto que representa el método representado por el delegado especificado.

Se aplica a