Поделиться через


AuthenticationSchemeSelector Делегат

Определение

Выбирает схему проверки подлинности для экземпляра 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 

Параметры

httpRequest
HttpListenerRequest

Экземпляр HttpListenerRequest, для которого следует выбрать схему проверки подлинности.

Возвращаемое значение

Одно из значений AuthenticationSchemes, указывающее метод проверки подлинности, который будет использоваться с определенным клиентским запросом.

Примеры

В следующем примере используется экземпляр этого типа для задания AuthenticationSchemeSelectorDelegate свойства .

// 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()

В следующем примере показана реализация метода, вызываемого делегатом 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;
    }
}
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

Комментарии

Делегаты этого типа используются экземплярами HttpListener для выбора схемы проверки подлинности на основе характеристик запроса.

Делегату AuthenticationSchemeSelector передается HttpListenerRequest объект для каждого входящего запроса, который не предоставил сведения о проверке подлинности. Метод, вызываемый делегатом, использует HttpListenerRequest объект и любые другие доступные сведения, чтобы решить, какая схема проверки подлинности требуется. Делегат задается с помощью AuthenticationSchemeSelectorDelegate свойства .

Методы расширения

GetMethodInfo(Delegate)

Получает объект, представляющий метод, представленный указанным делегатом.

Применяется к