AFAIAA, the HTTPS handshake is always handled by IIS / Windows, you do not control it from your application. The only possible way is to have a specially configured part of your application that requires a client certificate, and the rest without it. Then, when you want the user to provide their certificate, redirect them to this page in a special part (which will probably just save / confirm the received certificate and redirect it back).
source share