Очистить состояние клиентского сертификата SSL из JavaScript

Я использую клиентские сертификаты в SSL-сеансах для аутентификации пользователей, но у меня есть небольшая проблема с кэшированными сеансами. (Я настроил IIS принимать — не требовать — клиентские сертификаты.)

Нормальная ситуация:
Пользователь обращается к странице, которая запрашивает сертификат. Браузер запускает селектор сертификатов, пользователь выбирает нужный сертификат (и при необходимости вводит PIN-код), и все идет своим чередом.

Ситуация, когда что-то не работает должным образом:
Пользователь обращается к странице, которая запрашивает сертификат. Браузер запускает средство выбора сертификата, и пользователь выбирает нужный сертификат, но затем отменяет его в диалоговом окне PIN-кода. Пользователь перенаправляется на предыдущую страницу, поскольку сертификат не был отправлен. Пользователь снова пытается войти в систему, но попытка автоматически завершается неудачно, поскольку последний сеанс SSL был кэширован.

Я решил эту проблему в IE с помощью document.execCommand("ClearAuthenticationCache");, но это по-прежнему не работает в FF или Chrome, поскольку они не поддерживают этот метод. Есть ли способ решить эту проблему?

8
задан SOLO 11 August 2018 в 04:47
поделиться