Em comparação com a autenticação básica (Básica), a autenticação digest do servidor de domínio, a autenticação integrada do Windows ou a autenticação de formulário personalizada, os certificados digitais do cliente são um pouco mais complexos em termos de implantação e gerenciamento, mas também são mais seguros na aplicação.
É muito fácil processar e identificar certificados digitais de clientes em ASP e ASP.NET. O código é o seguinte:
Sintaxe ASP (VBScript):
Dim subject.
subject=Request.ServerVariables("CERT_SUBJECT")
ou
subject=Request.ClientCertifate("Assunto") '--Aplicável ao Assunto sem certificado chinês
Sintaxe ASP.NET (C#):
string subject;
HttpClientCertificate hcc = Request.ClientCertificate;
if(hcc.IsValid) = hcc.Subject;
A string de assunto obtida é uma lista de subcampos separados por vírgula. Por exemplo, C=CN,O=BOC,CN=moslem, então separe as strings e pegue o último valor de CN (pode ser mais de um CN). Este valor é o Nome Comum do usuário, que é o "nome normal", geralmente o nome de usuário ou ID.
Após obter o CN no certificado digital, é possível realizar processamentos adicionais, como autorizar o usuário. Acho que uma abordagem mais eficaz é habilitar certificados digitais e autenticação de formulário ao mesmo tempo no cliente. A autenticação multifator pode ser obtida comparando os valores do nome de usuário inseridos no CN e no Formulário para ver se eles correspondem. .
Relativamente falando, o ASP.NET fornece uma classe HttpClientCertificate dedicada para lidar com certificados digitais de clientes, por isso é mais conveniente lidar com isso no programa.