我有一个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应用程序未在注册证书的用户帐户下运行。为了在开发模式下绕过它我更改了应用程序池以在我的用户身份下运行,但这是一个临时值。溶液
我是否应该为“网络服务”用户帐户安装证书(如果可以的话),请为证书指定其他来源,或者有更好的方法来解决此问题吗?
谢谢!
答案 0 :(得分:2)
在LocalMachine商店而不是当前用户商店中安装证书 - 然后您可以通过更改clientCertificate元素中的storeLocation从那里获取证书