次の方法で共有


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 ポリシーは、要求に WebRequest 関連付けられている または WebProxy に ではない null資格情報がある場合にのみ呼び出されます。 このポリシーを設定しても、資格情報を指定しない要求には影響しません。

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

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

メソッド

ShouldSendCredential(Uri, WebRequest, NetworkCredential, IAuthenticationModule)

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

適用対象