[英]ASP.NET WebApi - How do I “allow”, but not “require” client certificates?
在IIS中,我可以“忽略”,“允许”和“要求”客户端证书。
在ASP.NET WebAPI(刚刚推出不久的4.0版本)中,我似乎只能“忽略”或“要求”。
默认情况下,客户端证书将被忽略...因此,此语句始终产生null:
var cert = actionContext.Request.GetClientCertificate();
但是,如果我在配置中设置此标志:
config.ClientCredentialType = HttpClientCredentialType.Certificate;
然后,我获得了客户端证书...但是,我不再具有允许匿名访问的功能。
我的匿名客户端现在收到403
错误:“远程服务器返回错误:(403)禁止。”
我可以像在IIS中那样做“允许”操作吗?
这是在自托管方案中使用X509证书的已知限制。 实际的限制来自WCF中的基础传输绑定,该绑定没有关于客户端证书的allow选项。
但是,您可以允许使用其他选项的多种身份验证方案,例如匿名和Windows。 我们正在与WCF团队合作,以确定是否可以同时使用匿名证书和x509证书添加该支持。
希望这可以澄清。
可能是所提供的证书无效吗? 在这种情况下,以下内容可以为您提供帮助: RemoteCertificateValidationCallback
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.