我在IIS中部署了两个网站,这两个网站都包含客户端系统将要使用的某些服务。 我在这两种方法中都实现了客户端证书身份验证,并配置了oneToOneCertificateMapping。 我创建了两个单独的客户端证书,并为每个网站配置了一个。 现在我面临的问题是,即使我为每个网站都只添加了一个,这两个证书对于这两个网站都都有效。
注意:在配置编辑器中,我已经在单个网站的web.config文件下而不是在ApplicationHost.Config中进行了此配置
这是两个网站的配置文件的外观:
<system.webServer>
<handlers>
<remove name="ExtensionlessUrlHandler-Integrated-4.0" />
<remove name="OPTIONSVerbHandler" />
<remove name="TRACEVerbHandler" />
<add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="*" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
</handlers>
<security>
<authentication>
<windowsAuthentication enabled="false" />
<anonymousAuthentication enabled="true" />
<iisClientCertificateMappingAuthentication enabled="true" manyToOneCertificateMappingsEnabled="false">
<oneToOneMappings>
<add userName="XXXXXX" password="[enc:AesProvider:XXXXXXXX:enc]" certificate="XXXX" />
</oneToOneMappings>
</iisClientCertificateMappingAuthentication>
</authentication>
</security>
</system.webServer>
<location path="web.config">
<system.webServer>
<security>
<authentication>
<iisClientCertificateMappingAuthentication enabled="true" oneToOneCertificateMappingsEnabled="true" defaultLogonDomain="XXXX">
<oneToOneMappings>
<add userName="XXX" password="[enc:AesProvider:XXXXX:enc]" certificate="XXXX" />
</oneToOneMappings>
</iisClientCertificateMappingAuthentication>
<anonymousAuthentication enabled="true" />
</authentication>
</security>
</system.webServer>
请帮助。我的要求是,只有指定的证书才能通过身份验证,而另一证书则不能。