HttpListener.AuthenticationSchemeSelectorDelegate Özellik
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
İstemcilerin kimliğini doğrulamak için kullanılan protokolü belirlemek için çağrılan temsilciyi alır veya ayarlar.
public:
property System::Net::AuthenticationSchemeSelector ^ AuthenticationSchemeSelectorDelegate { System::Net::AuthenticationSchemeSelector ^ get(); void set(System::Net::AuthenticationSchemeSelector ^ value); };
public System.Net.AuthenticationSchemeSelector? AuthenticationSchemeSelectorDelegate { get; set; }
public System.Net.AuthenticationSchemeSelector AuthenticationSchemeSelectorDelegate { get; set; }
member this.AuthenticationSchemeSelectorDelegate : System.Net.AuthenticationSchemeSelector with get, set
Public Property AuthenticationSchemeSelectorDelegate As AuthenticationSchemeSelector
Özellik Değeri
Kimlik AuthenticationSchemeSelector doğrulama protokollerini seçmek için kullanılan yöntemi çağıran bir temsilci.
null
varsayılan değerdir.
Özel durumlar
Bu nesne kapatıldı.
Örnekler
Aşağıdaki kod örneği bu özelliğin değerini ayarlar.
// 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()
Aşağıdaki kod örneği, bir temsilci tarafından AuthenticationSchemeSelector çağrılan bir yöntemin uygulamasını sağlar.
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
Açıklamalar
Not
Aynı kimlik doğrulama protokolünün belirli bir örneği HttpListenertarafından işlenen tüm istekler için kullanılmasını istiyorsanız, bu özelliği ayarlamanız gerekmez. Tüm istemci isteklerinde kullanılacak protokolü belirtmek için özelliğini kullanın AuthenticationSchemes .
İstemci üst bilgilerinde kimlik doğrulama bilgileri belirtmediyse, istemcinin HttpListener kimliğini doğrulamak için kullanılacak protokolü belirlemek üzere kimliği doğrulanmamış her gelen istek için belirtilen temsilciyi çağırır. GetContext ve EndGetContext yöntemleri, gelen bir isteği yalnızca isteğin HttpListener kimliğinin başarıyla doğrulanmış olduğu durumlarda döndürür. bir isteğin kimliği doğrulanamıyorsa, HttpListener otomatik olarak bir 401 yanıtı geri gönderir. özelliğini kullanarak başarıyla kimliği doğrulanmış bir istemcinin HttpRequest.LogonUserIdentity kimliğini alabilirsiniz.
Kimlik doğrulama protokolü seçimini uygulamaya özgü bir yönteme devretme özelliği, örneğinin HttpListener aldığı isteklerin özelliklerine (örneğin, Url isteğin veya UserHostAddress özelliğinin) bağlı olarak farklı kimlik doğrulama protokolleri kullanmasını istiyorsanız yararlıdır.
Not
Bu özelliği Özet, NTLM veya Negotiate'i etkinleştirecek şekilde ayarlamak için , ControlPrincipalgerekirSecurityPermission.