HttpListener.AuthenticationSchemes Properti
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Mendapatkan atau mengatur skema yang digunakan untuk mengautentikasi klien.
public:
property System::Net::AuthenticationSchemes AuthenticationSchemes { System::Net::AuthenticationSchemes get(); void set(System::Net::AuthenticationSchemes value); };
public System.Net.AuthenticationSchemes AuthenticationSchemes { get; set; }
member this.AuthenticationSchemes : System.Net.AuthenticationSchemes with get, set
Public Property AuthenticationSchemes As AuthenticationSchemes
Nilai Properti
Kombinasi bitwise dari AuthenticationSchemes nilai enumerasi yang menunjukkan bagaimana klien akan diautentikasi. Nilai defaultnya adalah Anonymous.
Pengecualian
Objek ini telah ditutup.
Contoh
Contoh kode berikut menunjukkan penggunaan AuthenticationSchemes properti untuk menentukan skema autentikasi.
public static void SimpleListenerWithUnsafeAuthentication(string[] prefixes)
{
// URI prefixes are required,
// for example "http://contoso.com:8080/index/".
if (prefixes == null || prefixes.Length == 0)
throw new ArgumentException("prefixes");
// Set up a listener.
HttpListener listener = new HttpListener();
foreach (string s in prefixes)
{
listener.Prefixes.Add(s);
}
listener.Start();
// Specify Negotiate as the authentication scheme.
listener.AuthenticationSchemes = AuthenticationSchemes.Negotiate;
// If NTLM is used, we will allow multiple requests on the same
// connection to use the authentication information of first request.
// This improves performance but does reduce the security of your
// application.
listener.UnsafeConnectionNtlmAuthentication = true;
// This listener does not want to receive exceptions
// that occur when sending the response to the client.
listener.IgnoreWriteExceptions = true;
Console.WriteLine("Listening...");
// ... process requests here.
listener.Close();
}
Public Shared Sub SimpleListenerWithUnsafeAuthentication(ByVal prefixes As String())
' URI prefixes are required,
' for example "http://contoso.com:8080/index/".
If prefixes Is Nothing OrElse prefixes.Length = 0 Then Throw New ArgumentException("prefixes")
' Set up a listener.
Dim listener As HttpListener = New HttpListener()
For Each s As String In prefixes
listener.Prefixes.Add(s)
Next
listener.Start()
' Specify Negotiate as the authentication scheme.
listener.AuthenticationSchemes = AuthenticationSchemes.Negotiate
' If NTLM Is used, we will allow multiple requests on the same
' connection to use the authentication information of first request.
' This improves performance but does reduce the security of your
' application.
listener.UnsafeConnectionNtlmAuthentication = True
' This listener does Not want to receive exceptions
' that occur when sending the response to the client.
listener.IgnoreWriteExceptions = True
Console.WriteLine("Listening...")
' ... process requests here.
listener.Close()
End Sub
Keterangan
HttpListener menggunakan skema yang ditentukan untuk mengautentikasi semua permintaan masuk. Metode GetContext dan EndGetContext mengembalikan permintaan klien masuk hanya jika HttpListener berhasil mengautentikasi permintaan.
Anda dapat menginterogasi identitas klien yang berhasil diautentikasi dengan menggunakan HttpListenerContext.User properti .
Jika Anda ingin objek menggunakan mekanisme autentikasi yang berbeda berdasarkan karakteristik permintaan yang HttpListener diterimanya (misalnya, permintaan Url atau UserHostName properti), Anda harus menerapkan metode yang memilih skema autentikasi. Untuk petunjuk tentang cara melakukannya, lihat AuthenticationSchemeSelectorDelegate dokumentasi properti.
Catatan
Untuk mengatur properti ini untuk mengaktifkan Digest, NTLM, atau Negosiasi memerlukan SecurityPermission, ControlPrincipal.