2016-09-26 3 views
0

У меня есть веб-приложение ASP.net, и мои клиенты должны пройти аутентификацию на моем веб-сайте с помощью клиентских сертификатов v3.Аутентификация клиента - обработка клиентских сертификатов

Все, что мне нужно проверить, что: 1 сертификат действителен 2- «выдан CN» имеет определенное значение

я сделать следующее в моем действии MVC:

var req = Request.ClientCertificate; 

req имеет свойство IsValid, которого достаточно для выполнения требования (1). Теперь проблема заключается в том, что я не могу проверить CN, потому что считаю, что он хранится в другом свойстве типа byte[0] под названием Certificate.

Я попытался чтения сертификата, как это:

var x509 = new X509Certificate(req.Certificate); 

Но я получаю два исключения:

'x509.Issuer' threw an exception of type 'System.Security.Cryptography.CryptographicException' 
'x509.Subject' threw an exception of type  'System.Security.Cryptography.CryptographicException' 

Как я могу прочитать сертификат?

ответ

0

Типичным подходом является сопоставление атрибутов сертификата (например, Subject или CN) одному или нескольким пользователям. Это делается через IIS configuration.

После этого все, что требуется MVC, это check the current user.

См. Также this article.

Смежные вопросы