다음을 통해 공유


인터넷 인증

클래스는 System.Net 기본 인터넷 인증 방법, 다이제스트, 협상, NTLM 및 Kerberos 인증뿐만 아니라 만들 수 있는 사용자 지정 방법을 비롯한 다양한 클라이언트 인증 메커니즘을 지원합니다.

인증 자격 증명은 NetworkCredential 인터페이스를 구현하는 CredentialCache 클래스와 ICredentials 클래스에 저장됩니다. 이러한 클래스 중 하나가 자격 증명을 쿼리하면 NetworkCredential 클래스의 인스턴스가 반환됩니다. 인증 프로세스는 클래스에서 AuthenticationManager 관리되며 실제 인증 프로세스는 인터페이스를 구현하는 인증 모듈 클래스에 IAuthenticationModule 의해 수행됩니다. 사용자 지정 인증 모듈을 사용하려면 먼저 AuthenticationManager 에 등록해야 합니다. 기본, 다이제스트, 협상, NTLM 및 Kerberos 인증 방법에 대한 모듈은 기본적으로 등록됩니다.

NetworkCredential은 URI로 식별된 단일 인터넷 리소스와 연결된 자격 증명 집합을 저장하고 메서드 호출 GetCredential 에 대한 응답으로 반환합니다. NetworkCredential 클래스는 일반적으로 제한된 수의 인터넷 리소스에 액세스하는 애플리케이션 또는 모든 경우에 동일한 자격 증명 집합을 사용하는 애플리케이션에서 사용됩니다.

CredentialCache 클래스는 다양한 웹 리소스에 대한 자격 증명 컬렉션을 저장합니다. 메서드가 GetCredential 호출되면 CredentialCache 는 웹 리소스의 URI 및 요청된 인증 체계에 따라 결정되는 적절한 자격 증명 집합을 반환합니다. 다양한 인증 체계를 사용하여 다양한 인터넷 리소스를 사용하는 애플리케이션은 모든 자격 증명을 저장하고 요청된 대로 제공하므로 CredentialCache 클래스를 사용하는 것이 좋습니다.

인터넷 리소스가 인증을 요청하면 메서드는 WebRequest.GetResponseWebRequest 자격 증명 요청과 함께 AuthenticationManager로 보냅니다. 그런 다음, 다음 프로세스에 따라 요청이 인증됩니다.

  1. AuthenticationManager는 등록된 각 인증 모듈의 메서드를 등록된 순서대로 호출 Authenticate 합니다. AuthenticationManagernull을 반환하지 않는 첫 번째 모듈을 사용하여 인증 프로세스를 수행합니다. 프로세스의 세부 정보는 관련된 인증 모듈의 유형에 따라 달라집니다.

  2. 인증 프로세스가 완료되면 인증 모듈은 인터넷 리소스에 액세스하는 데 필요한 정보가 포함된 Authorization를 반환 합니다.

일부 인증 체계는 먼저 리소스를 요청하지 않고 사용자를 인증할 수 있습니다. 애플리케이션은 리소스를 사용하여 사용자를 미리 인증하여 시간을 절약할 수 있으므로 서버로의 왕복을 하나 이상 제거할 수 있습니다. 또는 나중에 사용자에게 응답하기 위해 프로그램 시작 중에 인증을 수행할 수 있습니다. 사전 인증을 사용할 수 있는 인증 체계는 PreAuthenticate 속성을 true로 설정합니다.

참고하십시오