다음을 통해 공유


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 )
            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)
            return true;

        return false;
    }
}

설명

자격 증명 정책은 웹 페이지의 콘텐츠와 같은 네트워크 리소스에 대한 을 WebRequest 보낼 때 자격 증명을 보낼지 여부를 결정합니다. 자격 증명이 전송되는 경우 클라이언트 인증이 필요한 서버는 클라이언트의 자격 증명이 필요하다는 응답을 보내는 대신 요청을 받을 때 클라이언트를 인증하려고 시도할 수 있습니다. 이렇게 하면 서버로의 왕복이 절약되지만, 이 성능 향상은 네트워크를 통해 자격 증명을 보내는 데 내재된 보안 위험과 균형을 유지해야 합니다. 대상 서버에 클라이언트 인증이 필요하지 않은 경우 자격 증명을 보내지 않는 것이 가장 좋습니다.

참고

ICredentialPolicy 경우에 정책을 호출 되는 WebRequest 또는 WebProxy 연결 된 요청 되지 않는 자격 증명에 null입니다. 이 정책 설정에 자격 증명을 지정 하지 않으면 하는 요청에 대 한 영향을 주지 않습니다.

AuthenticationManager.CredentialPolicy 속성을 사용하여 정책을 설정합니다ICredentialPolicy. 합니다 IAuthenticationModule 요청에 대 한 인증을 처리 하는 호출을 ShouldSendCredential 인증을 수행 하기 전에 메서드. 메서드가 를 반환 false하는 경우 인증이 수행되지 않습니다.

ICredentialPolicy 정책에는의 모든 인스턴스에 영향을 줍니다. WebRequest 현재 애플리케이션 도메인에서 null이 아닌 자격 증명을 사용 합니다. 개별 요청에 대해 정책을 재정의할 수 없습니다.

메서드

ShouldSendCredential(Uri, WebRequest, NetworkCredential, IAuthenticationModule)

Boolean 클래스의 인스턴스를 사용하여 리소스를 요청할 때 클라이언트의 자격 증명을 함께 보내는지 여부를 나타내는 WebRequest을 반환합니다.

적용 대상