繁体   English   中英

ASP.NET WebApi-如何“允许”而不是“要求”客户端证书?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM