我有一个公开的WCF服务。在安全性方面,我需要使用客户端证书和用户名密码对其进行身份验证。
很少有客户端使用客户端证书进行身份验证,其他客户端使用用户名密码进行身份验证。
当我将服务配置为使用客户端证书时,IIS - >需要为SSL Require配置SSL设置。这样做,没有客户端证书的其他客户端无法访问该服务。
我如何解决这个问题?
答案 0 :(得分:1)
在IIS中托管服务时无法实现。具有所需客户端证书的SSL配置具有整个虚拟目录/应用程序的范围,在该虚拟目录/应用程序中配置它以及在该目因此,您必须每次在具有不同配置的不同虚拟目录或Web应用程序中托管服务两次。
或者,您可以在Windows服务中自托管服务,并为每个端点指定单独的配置。
答案 1 :(得分:1)
我想我确实找到了解决上述问题的方法。
您只需将服务放在虚拟目录下的不同文件夹中即可。
在IIS中获得上述服务后,只需选择执行客户端证书身份验证的文件夹,然后设置文件夹SSL Settings。
注意:在IIS中,您可以使用web.config或每个文件夹的IIS功能视图设置每个文件夹的设置。
这样您就可以实现多种身份验证。