WCF -来自web应用程序的基于证书的授权

本文关键字:证书 授权 于证书 来自 web 应用程序 WCF | 更新日期: 2023-09-27 18:02:47

我有一个WCF服务,它只被授予少数拥有已知证书的机器和web应用程序的访问权限。

对于web应用,我需要指定用于授权的证书:

<behaviors>
  <endpointBehaviors>
    <behavior name="ScannerManagerBehavior">
      <clientCredentials>
        <clientCertificate findValue="MyCertificateName" x509FindType="FindBySubjectName" storeLocation="CurrentUser" storeName="My"/>
        <serviceCertificate>
          <authentication certificateValidationMode="PeerTrust"/>
        </serviceCertificate>
      </clientCredentials>
    </behavior>
  </endpointBehaviors>
</behaviors>

问题是web应用程序没有在注册证书的用户帐户下运行。为了在开发模式下绕过它,我将应用程序池更改为在我的用户身份下运行,但这是临时解决方案。

我是否应该为"网络服务"用户帐户安装证书(如果可以的话),为证书指定不同的来源,或者有更好的方法来解决这个问题?

谢谢!

WCF -来自web应用程序的基于证书的授权

在LocalMachine存储库而不是当前用户存储库中安装证书—然后您可以通过更改clientCertificate元素

中的storeLocation从LocalMachine存储库中获取证书