Search code examples
asp.netiissslpki

ASP.NET - Help Testing & Debugging PKI Authentication


I am working on an ASP.NET WebForms application, and I have been asked to switch from Windows Form Authentication to PKI Certificate Authentication; something I know very little about.

After reviewing various web posts and their code snippets, I thought I knew enough to at least begin sniffing a PKI Certificate (or any client certificate for that matter). Specifically I am using:

X509Certificate2 cert = new X509Certificate2(Page.Request.ClientCertificate.Certificate);
X500DistinguishedName dn = cert.SubjectName;

So I put a breakpoint on the 2nd line, hit F5 from Visual Studio. Debugging starts, but 'cert' is always null. I then realize that I have no Personal certs on my computer, so I download the Firefox add-on Key-Manager, create a dummy certificate, and try again with the same result, 'cert' is always null.

So then, I start screwing around with the command-line tool makecert, but still 'cert' is always null.

I am using IIS Express 7.5 for debugging purposes, tried both http and https.

What do I need to do to attach the personal cert to any web requests, and have them get picked up by my ASP.NET application?


Solution

  • Do you have IIS express setup to require client certs?

    Please look here for a similar question/answer:

    https://serverfault.com/questions/309690/how-to-configure-iis-express-to-ask-for-client-certificate

    http://www.iis.net/ConfigReference/system.webServer/security/authentication/iisClientCertificateMappingAuthentication