6

在 IIS 中,我可以“忽略”、“允许”和“要求”客户端证书。

在 ASP.NET WebAPI(不久前推出的 4.0 版)中,我似乎只能“忽略”或“要求”。

默认情况下,客户端证书被忽略......所以这个语句总是产生空值:

var cert = actionContext.Request.GetClientCertificate();

但是,如果我在我的配置上设置这个标志:

config.ClientCredentialType = HttpClientCredentialType.Certificate;

然后我得到了客户端证书......但是,我不再有能力允许匿名访问。

我的匿名客户端现在收到403错误消息:“远程服务器返回错误:(403) Forbidden。”

我可以像在 IIS 中那样做一种“允许”吗?

4

2 回答 2

2

这是在自托管方案中使用 X509 证书的已知限制。实际限制来自 WCF 中的底层传输绑定,它没有关于客户端证书的允许选项。

但是,您可以使用其他选项(例如匿名和窗口)允许多个身份验证方案。我们正在与 WCF 团队合作,以确定我们是否可以通过匿名和 x509 证书添加该支持。

希望这可以澄清。

于 2012-10-05T16:47:56.673 回答
0

可能是提供的证书无效吗?如果是这种情况,以下内容可以帮助您: RemoteCertificateValidationCallback

于 2012-09-11T11:00:26.517 回答