Я развернул два сайта в 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>
Пожалуйста, помогите.Мое требование заключается в том, что только указанный сертификат должен пройти проверку подлинности, а не другой.