IsPresent == false can be caused by several different things related to the server and client. We struck all of them on the way to their final correction, and I will talk in detail about them ....
Server Problem # 1 - A client certificate that has passed has 1 or more certification paths that DO NOT exist on the server. Open the certificate, go to the certification path (tab) and make sure that each of the root resources is in the trusted root certification services SERVERS. Please note: you do not need to install the certificate on the server with only the public keys of the root resources in the Certificates (local computer) \ Trusted Root Certification Authority section.
Problems with server # 2 (previously mentioned solution). In IIS for the site, verify that the SSL settings are set to Accept OR Require (never ignore). The advantage of using Require is that IIS logs will show you a 403 7 error, where, since Accept will just get your IsPresent == false, but with 200 http code.
Client Problem # 1 - Same as Server Problem # 1, trusted by these authorities!
Client # 2 - You have trusted root credentials, but NOT a private key for the certificate itself. Make sure you install pfx (private key) in the certificate store, not the public key (.cer). You can also see if you have a private key by double-clicking cert in the certificate store, and on the general tab you will see a message that says the same.
Client No. 3 - You are placing the certificate in the wrong place. It is probably best to place your certificate in certificates (local computer) \ Personal \ Certificates, and not (current user). This will make the certificate available for processing accounts that run your code and actually need access to it.
Client No. 4 - right-click the certificate (there is no .cer file in the repository) β All tasks β Manage private keys ... and make sure that the process account on which your code is running has βReadβ permission. A quick test of this (but not recommended for use in production) is to add "Everyone" as read to see if this is your problem.
source share