ICredentialPolicy インターフェイス

定義

WebRequest およびその派生クラスを使用して行われるリソース要求で使用される資格情報ポリシーを定義します。

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

注釈

資格情報ポリシーは、Web ページのコンテンツなど、ネットワーク リソースの送信時に資格情報を送信 WebRequest するかどうかを決定します。 資格情報が送信された場合、クライアント認証を必要とするサーバーは、クライアントの資格情報が必要であることを示す応答を送信する代わりに、要求の受信時にクライアントの認証を試みることができます。 これによりサーバーへのラウンド トリップが節約されますが、このパフォーマンス向上は、ネットワーク経由で資格情報を送信する際に固有のセキュリティ リスクとバランスを取る必要があります。 移行先サーバーがクライアント認証を必要としない場合は、資格情報を送信しないことをお勧めします。

注意

ICredentialPolicyポリシーが呼び出されるのは、要求にWebRequestWebProxy関連付けられている資格情報または要求に関連付けられている資格情報が含まれていないnull場合のみです。 このポリシーを設定しても、資格情報を指定しない要求には影響しません。

このプロパティを AuthenticationManager.CredentialPolicy 使用してポリシーを ICredentialPolicy 設定します。 IAuthenticationModule要求の認証を処理するメソッドは、認証をShouldSendCredential実行する前にメソッドを呼び出します。 メソッドが返された false場合、認証は実行されません。

ポリシーは ICredentialPolicy 、現在のアプリケーション ドメイン内の null 以外の WebRequest 資格情報を持つすべてのインスタンスに影響します。 個々の要求でポリシーをオーバーライドすることはできません。

メソッド

ShouldSendCredential(Uri, WebRequest, NetworkCredential, IAuthenticationModule)

WebRequest クラスのインスタンスを使用して行われるリソース要求と共にクライアントの資格情報を送信するかどうかを示す Boolean を返します。

適用対象