我在IIS7.5中部署了ASP.Net WebApi REST服务。我正在测试如何向此服务添加客户端证书身份验证过程,以便只有特定的客户端才能访问该服务。
现状:
问题:
当我尝试使用Internet Explorer中的Resttesttest(http://resttesttest.com/)访问客户端上的服务时,系统不会提示我选择客户端证书,并且该服务不会返回任何数据。 IIS日志中的错误代码为500. 但是,在Chrome中执行相同的测试允许我选择客户端证书,该服务返回有效数据。使用fiddler进行测试还可以让我正确访问服务。
执行故障排除步骤:
我发现了一个与问题I非常相似的stackoverflow问题 有:
Browser is not prompting for a client certificate
但在这种情况下,Chrome似乎也无法正常工作。为了我的 案例Chrome和Fiddler工作,只有Internet Explorer没有。这是 让我最困惑的是什么。
我完全不知道自己可能错过了什么,所以我们非常感谢任何建议。
非常感谢,
大卫
答案 0 :(得分:0)
我想我可能会帮你解决。
我在webapiconfig.cs中添加了这个
var cors = new EnableCorsAttribute("*", "*", "*") { SupportsCredentials = true };
并在我的Web.Config中添加了
<authentication mode="Windows"/>
<authorization>
<allow users="?"/>
</authorization>
在我的Fetch中,我刚刚添加了
{
method: "GET",
headers: myHeaders,
credentials: "include"
};
这适用于IE11和IE10!