在IIS中,我可以“忽略”,“允许”和“要求”客户端证书。
在ASP.NET WebAPI(刚刚推出的版本4.0)中,我似乎只能“忽略”或“需要”。
默认情况下,客户端证书被忽略...因此该语句总是产生null:
var cert = actionContext.Request.GetClientCertificate();
但是,如果我在配置上设置了这个标志:
config.ClientCredentialType = HttpClientCredentialType.Certificate;
然后我获得了客户端证书......但是,我不再能够允许匿名访问。
我的匿名客户端现在收到403
错误:“远程服务器返回错误:(403)禁止。”
我可以在IIS中执行某种“允许”吗?
答案 0 :(得分:2)
这是在自主机方案中使用X509证书的已知限制。实际限制来自WCF中的基础传输绑定,它没有关于客户端证书的 allow 选项。
但是,您可以允许使用其他选项进行多种身份验证方案,例如匿名和Windows。我们正在与WCF团队合作,以了解我们是否可以使用匿名和x509证书添加该支持。
希望这澄清。
答案 1 :(得分:0)
提供的证书是否无效? 如果是这种情况,以下内容可以帮助您: RemoteCertificateValidationCallback