ICredentialPolicy 介面

定義

定義用於資源要求 (使用 WebRequest 及其衍生類別 (Derived Class) 所提出) 的認證原則。

public interface class ICredentialPolicy
public interface ICredentialPolicy
type ICredentialPolicy = interface
Public Interface ICredentialPolicy
衍生

範例

下列程式碼範例示範此介面的實作,此介面只允許針對特定主機的要求傳送認證。

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;
    }
}

備註

認證原則會決定在傳送 WebRequest 網路資源的 時是否要傳送認證,例如網頁的內容。 如果傳送認證,要求用戶端驗證的伺服器可以在收到要求時嘗試驗證用戶端,而不是傳送指出用戶端認證是必要的回應。 雖然這會節省往返到伺服器的行程,但此效能提升必須與在網路上傳送認證固有的安全性風險進行平衡。 當目的地伺服器不需要用戶端驗證時,最好不要傳送認證。

注意

ICredentialPolicy只有在與要求相關聯的 或 WebProxy 具有不是 null 的認證時 WebRequest ,才會叫用原則。 設定此原則不會影響未指定認證的要求。

AuthenticationManager.CredentialPolicy使用 屬性來設定原則 ICredentialPolicy 。 處理要求驗證的 , IAuthenticationModule 會在執行驗證之前叫 ShouldSendCredential 用 方法。 如果方法傳 false 回 ,則不會執行驗證。

原則 ICredentialPolicy 會影響目前應用程式域中具有非 Null 認證的所有 實例 WebRequest 。 無法覆寫個別要求的原則。

方法

ShouldSendCredential(Uri, WebRequest, NetworkCredential, IAuthenticationModule)

傳回 Boolean,指出用戶端認證是否與資源要求 (使用 WebRequest 類別執行個體所提出) 一起傳送。

適用於