Ich habe eine Menge ungelöster Fragen zu diesem Thema gesehen. Anscheinend haben viele Entwickler dieses Problem past bekommen, aber ich habe keine veröffentlichten Lösungen gesehen.Anfrage Client-Zertifikat
Ich versuche, eine Smartcard (X.509 CAC) für meine ASP.NET MVC 5 Web App zu lesen. Wenn ich versuche, die Zertifikatsinformationen wie folgt abzurufen:
Das Zertifikat hat leere Werte.
Das Problem scheint zu sein, ich präsentiere nicht den Dialog, um Benutzerzertifikat Informationen wie ich auf anderen Websites zu sehen. Wie stelle ich diesen Dialog zur Verfügung?
Ich verwende es mit SSL aktiviert. Mein applicationhost.config hat dies darin:
<authentication>
<anonymousAuthentication enabled="false"/>
<basicAuthentication enabled="false" />
<clientCertificateMappingAuthentication enabled="false" />
<digestAuthentication enabled="false" />
<iisClientCertificateMappingAuthentication enabled="true" manyToOneCertificateMappingsEnabled="true">
<manyToOneMappings>
<add name="Authentication Certificate"
enabled="true"
permissionMode="Allow"
userName="foo"
password="bar">
<rules>
<add certificateField="Issuer" certificateSubField="CN" matchCriteria="*localhost*" compareCaseSensitive="false" />
</rules>
</add>
</manyToOneMappings>
</iisClientCertificateMappingAuthentication>
<windowsAuthentication enabled="false">
<providers>
<add value="Negotiate" />
<add value="NTLM" />
</providers>
</windowsAuthentication>
</authentication>
Hier ist mein Zugangsknoten:
<access sslFlags="SslRequireCert" />
Hinweis: dass Benutzername/Passwort = foo/bar verdächtig aussieht. Warum sollte dies auf der Benutzerseite überhaupt bevölkert sein? Ist ein erforderlicher Dienstaccount damit verbunden?
Ich habe auch versucht, einfachere Konfigurationen:
<authentication>
<anonymousAuthentication enabled="false" userName="" />
<basicAuthentication enabled="false" />
<clientCertificateMappingAuthentication enabled="true" />
<digestAuthentication enabled="false" />
<iisClientCertificateMappingAuthentication enabled="false">
</iisClientCertificateMappingAuthentication>
<windowsAuthentication enabled="false">
<providers>
<add value="Negotiate" />
<add value="NTLM" />
</providers>
</windowsAuthentication>
</authentication>
Was hat die Seite geschieht in der Regel präsentiert wird, aber ich bin nicht für mein Client-Zertifikat erbeten.
Ich habe eindeutig die Client-Zertifikate, also bin ich mir nicht sicher, warum andere Websites können sie anfordern.
I IIS Express bin mit 10.