En comparación con la autenticación básica (Básica), la autenticación implícita del servidor de dominio, la autenticación integrada de Windows o la autenticación de formulario personalizada, los certificados digitales del cliente son un poco más complejos en términos de implementación y administración, pero también son más seguros y algunos también son más flexibles en su aplicación.
Es muy fácil procesar e identificar certificados digitales de clientes en ASP y ASP.NET. El código es el siguiente:
Sintaxis ASP (VBScript):
Asunto tenue.
asunto=Request.ServerVariables("CERT_SUBJECT")
o
sujeto=Request.ClientCertifate("Subject") '--Aplicable al Asunto sin certificado chino
ASP.NET (C#) Sintaxis:
cadena asunto;
HttpClientCertificate hcc = Solicitud.ClientCertificate;
if(hcc.IsValid) = hcc.Subject;
La cadena de asunto obtenida es una lista de subcampos separados por comas. Por ejemplo, C=CN,O=BOC,CN=moslem, luego separe las cadenas y tome el último valor CN (puede ser más de un CN). Este valor es el nombre común del usuario, que es el "nombre normal". normalmente el nombre de usuario o ID.
Después de obtener el CN en el certificado digital, puede realizar procesamientos adicionales, como autorizar al usuario. Creo que un enfoque más eficaz es habilitar los certificados digitales y la autenticación de formularios al mismo tiempo en el cliente. La autenticación multifactor se puede lograr comparando los valores del nombre de usuario ingresados en CN y Formulario para ver si coinciden. .
En términos relativos, ASP.NET proporciona una clase HttpClientCertificate dedicada para manejar los certificados digitales del cliente, por lo que es más conveniente manejarlo en el programa.