Bagikan melalui


ICredentialPolicy Antarmuka

Definisi

Menentukan kebijakan kredensial yang akan digunakan untuk permintaan sumber daya yang dibuat menggunakan WebRequest dan kelas turunannya.

public interface class ICredentialPolicy
public interface ICredentialPolicy
type ICredentialPolicy = interface
Public Interface ICredentialPolicy
Turunan

Contoh

Contoh kode berikut menunjukkan implementasi antarmuka ini yang mengizinkan kredensial dikirim hanya untuk permintaan yang menargetkan host tertentu.

public ref class SelectedHostsCredentialPolicy: public ICredentialPolicy
{
public:
   SelectedHostsCredentialPolicy(){}

   virtual bool ShouldSendCredential( Uri^ challengeUri, WebRequest^ request, NetworkCredential^ /*credential*/, IAuthenticationModule^ /*authModule*/ )
   {
      Console::WriteLine( L"Checking custom credential policy." );
      if ( request->RequestUri->Host->Equals( L"www.contoso.com" ) || challengeUri->IsLoopback == true )
            return true;

      return false;
   }
};
public class SelectedHostsCredentialPolicy: ICredentialPolicy
{
    public SelectedHostsCredentialPolicy()
    {
    }

    public virtual bool ShouldSendCredential(Uri challengeUri,
        WebRequest request,
        NetworkCredential credential,
        IAuthenticationModule authModule)
    {
        Console.WriteLine("Checking custom credential policy.");
        if (request.RequestUri.Host == "www.contoso.com" ||
            challengeUri.IsLoopback == true)
            return true;

        return false;
    }
}

Keterangan

Kebijakan kredensial menentukan apakah akan mengirim kredensial saat mengirim WebRequest untuk sumber daya jaringan, seperti konten halaman Web. Jika kredensial dikirim, server yang memerlukan autentikasi klien dapat mencoba mengautentikasi klien ketika permintaan diterima alih-alih mengirim respons yang menunjukkan bahwa kredensial klien diperlukan. Meskipun ini menyimpan perjalanan pulang pergi ke server, perolehan performa ini harus seimbang terhadap risiko keamanan yang melekat dalam mengirim kredensial di seluruh jaringan. Ketika server tujuan tidak memerlukan autentikasi klien, yang terbaik adalah tidak mengirim kredensial.

Catatan

ICredentialPolicy kebijakan dipanggil hanya jika WebRequest atau WebProxy yang terkait dengan permintaan memiliki kredensial yang bukan null. Mengatur kebijakan ini tidak berpengaruh pada permintaan yang tidak menentukan kredensial.

AuthenticationManager.CredentialPolicy Gunakan properti untuk menetapkan ICredentialPolicy kebijakan. IAuthenticationModule yang menangani autentikasi untuk permintaan akan memanggil ShouldSendCredential metode sebelum melakukan autentikasi. Jika metode mengembalikan false, autentikasi tidak dilakukan.

Kebijakan ICredentialPolicy memengaruhi semua instans WebRequest dengan kredensial non-null di domain aplikasi saat ini. Kebijakan tidak dapat ditimpa pada permintaan individual.

Metode

ShouldSendCredential(Uri, WebRequest, NetworkCredential, IAuthenticationModule)

Boolean Mengembalikan yang menunjukkan apakah kredensial klien dikirim dengan permintaan sumber daya yang dibuat menggunakan instans WebRequest kelas .

Berlaku untuk