Comparés à l'authentification de base (Basic), à l'authentification Digest du serveur de domaine, à l'authentification Windows intégrée ou à l'authentification par formulaire personnalisé, les certificats numériques clients sont légèrement plus complexes en termes de déploiement et de gestion, mais ils sont également plus sécurisés. Certains sont également plus flexibles dans leur application.
Il est très simple de traiter et d'identifier les certificats numériques clients en ASP et ASP.NET. Le code est le suivant :
Syntaxe ASP (VBScript) :
Dim sujet.
sujet=Request.ServerVariables("CERT_SUBJECT")
ou
subject=Request.ClientCertifate("Subject") '--Applicable au sujet sans certificat chinois
ASP.NET (C#) Syntaxe :
chaîne subject ;
HttpClientCertificate hcc = Request.ClientCertificate ;
if(hcc.IsValid) = hcc.Subject;
La chaîne d'objet obtenue est une liste de sous-champs séparés par des virgules. Par exemple, C=CN,O=BOC,CN=moslem, puis séparez les chaînes et prenez la dernière valeur CN (peut être plusieurs CN). Cette valeur est le nom commun de l'utilisateur, qui est le "nom normal". généralement le nom d'utilisateur ou l'identifiant.
Après avoir obtenu le CN dans le certificat numérique, vous pouvez effectuer un traitement ultérieur, comme autoriser l'utilisateur. Je pense qu'une approche plus efficace consiste à activer simultanément les certificats numériques et l'authentification par formulaire sur le client. L'authentification multifacteur peut être obtenue en comparant les valeurs du nom d'utilisateur saisi dans le CN et le formulaire pour voir si elles correspondent. .
Relativement parlant, ASP.NET fournit une classe HttpClientCertificate dédiée à la gestion des certificats numériques clients, il est donc plus pratique de la gérer dans le programme.