기본 인증(Basic), 도메인 서버의 다이제스트 인증, Windows 통합 인증 또는 사용자 정의 양식 인증과 비교하여 클라이언트 디지털 인증서는 배포 및 관리 측면에서 약간 더 복잡하지만 일부는 적용 측면에서도 더 유연합니다.
ASP 및 ASP.NET에서 클라이언트 디지털 인증서를 처리하고 식별하는 것은 매우 쉽습니다. 코드는 다음과 같습니다.
ASP(VBScript) 구문:
희미한 제목
주제=Request.ServerVariables("CERT_SUBJECT")
또는
subject=Request.ClientCertifate("Subject") '--중국어 인증서가 없는 주제에 적용 가능
ASP.NET(C#) 구문:
string subject;
HttpClientCertificate hcc = Request.ClientCertificate;
if(hcc.IsValid) = hcc.Subject;
얻은 제목 문자열은 쉼표로 구분된 하위 필드 목록입니다. 예를 들어 C=CN,O=BOC,CN=moslem과 같이 문자열을 분리하고 마지막 CN 값(하나 이상의 CN일 수 있음)을 가져옵니다. 이 값은 "일반 이름"인 사용자의 일반 이름입니다. 일반적으로 사용자 이름 또는 ID입니다.
디지털 인증서에서 CN을 가져온 후 사용자 인증과 같은 추가 처리를 수행할 수 있습니다. 클라이언트에서 디지털 인증서와 양식 인증을 동시에 활성화하는 것이 더 효과적인 접근 방식이라고 생각합니다. CN과 양식에 입력된 사용자 이름의 값을 비교하여 일치하는지 확인하면 됩니다. .
상대적으로 말하면 ASP.NET은 클라이언트 디지털 인증서를 처리하기 위한 전용 HttpClientCertificate 클래스를 제공하므로 프로그램에서 처리하는 것이 더 편리합니다.