我们正在开发一个ASP.NET 5项目,其中一个要求是用户身份验证是通过浏览器通过客户端证书完成的,但我无法完成这项工作。
使用web.config
和IIS,使用此配置正确请求证书:
<system.webServer>
<security>
<access sslFlags="Ssl, SslNegotiateCert" />
<authentication>
<iisClientCertificateMappingAuthentication enabled="true" />
</authentication>
</security>
</system.webServer>
但是客户端证书没有到达Web应用程序,因为我知道它应该在context.Connection.ClientCertificate
属性中,context
是当前的HttpContext
。
我怀疑将IIS隧道传输到Kestrel的httpPlatformHandler
忽略了https,这可能会在将来实施。
我已经使用OWIN网站(不是DNX)和自定义AuthenticationHandler
进行了一些测试,这些测试获得了X509客户端证书并在IIS下正常运行。
答案 0 :(得分:2)
看起来已经完成了一些工作,拉动请求和合并已经完成了。所以...希望我们会在Kestrel的更新版本中看到它。
答案 1 :(得分:1)
正如我在Change to IIS hosting model公告中所读到的那样:
- HttpPlatformHandler目前不转发客户端证书(这将是未来的增强功能)
所以,现在似乎不可能,httpPlaformHandler
必须修复。