Im Vergleich zur Basisauthentifizierung (Basic), der Digest-Authentifizierung des Domänenservers, der integrierten Windows-Authentifizierung oder der benutzerdefinierten Formularauthentifizierung sind digitale Client-Zertifikate etwas komplexer in Bezug auf Bereitstellung und Verwaltung, aber auch sicherer. Einige sind auch flexibler in der Anwendung.
Es ist sehr einfach, digitale Client-Zertifikate in ASP und ASP.NET zu verarbeiten und zu identifizieren. Der Code lautet wie folgt:
ASP (VBScript)-Syntax:
Dim subject
subject=Request.ServerVariables("CERT_SUBJECT")
oder
subject=Request.ClientCertifate("Subject") '--Gilt für Betreff ohne chinesisches Zertifikat
ASP.NET (C#) Syntax:
string subject;
HttpClientCertificate hcc = Request.ClientCertificate;
if(hcc.IsValid) = hcc.Subject;
Die erhaltene Betreffzeichenfolge ist eine durch Kommas getrennte Liste von Unterfeldern. Beispiel: C=CN,O=BOC,CN=moslem, dann trennen Sie die Zeichenfolgen und nehmen Sie den letzten CN-Wert (kann mehr als ein CN sein). Dieser Wert ist der allgemeine Name des Benutzers, der der „reguläre Name“ ist. normalerweise der Benutzername oder die ID.
Nachdem Sie die CN im digitalen Zertifikat erhalten haben, können Sie die weitere Verarbeitung durchführen, beispielsweise die Autorisierung des Benutzers. Ich denke, ein effektiverer Ansatz besteht darin, digitale Zertifikate und Formularauthentifizierung gleichzeitig auf dem Client zu aktivieren. Die Multi-Faktor-Authentifizierung kann erreicht werden, indem die Werte des in CN und Formular eingegebenen Benutzernamens verglichen werden, um festzustellen, ob sie übereinstimmen .
Relativ gesehen stellt ASP.NET eine dedizierte HttpClientCertificate-Klasse für die Verarbeitung digitaler Clientzertifikate bereit, sodass die Verarbeitung im Programm bequemer ist.