У меня есть сервер IIS7 win 2008 и пользователи, которые входят в систему с помощью карты CAC. Я хочу добавить имя пользователя карты CAC на веб-страницу при входе в систему. И я также хотел бы регистрировать информацию о пользователе с карты CAC на моем веб-сервере, чтобы я мог видеть, кто посещает мой веб-сайт.
Если сертификаты клиентов включены (Веб-сайт> Параметры SSL> Сертификаты клиентов> Принять), когда пользователь аутентифицируется с помощью своей смарт-карты, сертификат присутствует как часть объекта запроса. Вы можете получить его, используя свойство Subject ClientCertificate.
if (Request.ClientCertificate.IsPresent)
{
X509Certificate2 clientCertificate = new X509Certificate2(Request.ClientCertificate.Certificate);
Debug.WriteLine("Subject: {0}", clientCertificate.Subject);
Debug.WriteLine("Issuer: {0}", clientCertificate.Issuer);
Debug.WriteLine("Valid Until: {0}", clientCertificate.NotAfter.ToString("yyyy-MM-dd HH:mm"));
Debug.WriteLine("Valid From: {0}", clientCertificate.NotBefore.ToString("yyyy-MM-dd HH:mm"));
Debug.WriteLine("Serial Number: {0}", clientCertificate.SerialNumber);
Debug.WriteLine("Thumbprint: {0}", clientCertificate.Thumbprint);
Debug.WriteLine("Public Key: {0}", clientCertificate.GetPublicKeyString());
}
Вы хотите, чтобы IIS7 требовал сертификатов клиентов SSL, поэтому пользователям необходимо сделать сертификаты доступными для Windows через программное обеспечение для чтения карт, браузер передает сертификаты с карты в IIS7.
Это сокращенные инструкции от технет.
Этого в сочетании с ответом Грега должно быть достаточно, чтобы вы начали.
Я бы также проверил это вашим юридическим отделом, чтобы увидеть, можете ли вы регистрировать подключения, вам может потребоваться разместить на странице согласие на мониторинг преамбулы.