一般来说,您授予权限A证书。我使用这样的方法来查找定制的证书并授予权限。如果您使用的是 Verisign、Thawte 等公共实体颁发的证书,这可能是不必要的。
FindPrivateKey.exe My LocalMachine –n "CN=<certificate issuer>"
...将在本地计算机上的个人存储中查找特定颁发者的证书。
注意:如果 FindPrivateKey 不在您的本地计算机上,
下载 WCF 示例,包括 FindPrivateKey 工具,网址为
FindPrivateKey 返回证书私钥的位置,类似于
"C:\Documents and Settings\All Users\Application Data\Microsoft\Crypto\RSA\Machinekeys\4d657b73466481beba7b0e1b5781db81_c225a308-d2ad-4e58-91a8-6e87f354b030".
运行以下命令行,为 ASP.NET/WCF 服务的进程标识分配只读访问权限
cacls.exe "C:\Documents and Settings\All Users\Application Data\Microsoft\Crypto\RSA\Machinekeys\4d657b73466481beba7b0e1b5781db81_c225a308-d2ad-4e58-91a8-6e87f354b030" /E /G "NT AUTHORITY\NETWORK SERVICE":R
注意:如果您运行的是 Microsoft Windows® XP,请为 ASPNET 标识(而不是 NT Authority\Network Service 标识)授予证书权限,因为 IIS 进程在 Windows XP 中的 ASPNET 帐户下运行。
可以从证书的 MMC 管理单元中查看证书。打开 MMC,选择“文件”-->“添加/删除管理单元”,单击“添加”按钮并选择证书。从这里您需要选择适当的存储(通常是计算机帐户 - ASP.NET 项目的本地计算机)进行管理,然后您可以查看/管理证书。
请仔细查看不同的命令行选项,并确保您在授予任何权限之前清楚地了解证书是什么以及它们如何工作。