【发布时间】:2022-01-04 05:39:48
【问题描述】:
我正在使用下面的 ASP.NET 代码从文件夹加载 pfx 文件
var certificatePath = $"{HttpContext.Current.Server.MapPath("~")}{certFolderName}\\{certFileName}";
return new X509Certificate2(certificatePath, certPassword, X509KeyStorageFlags.MachineKeySet);
此代码在本地 IIS 中运行良好。然而,当移动到我们的 QA 服务器时,相同的代码会引发访问被拒绝错误,如下所示。
我浏览了许多论坛并了解到这主要是访问文件夹 C:\ProgramData\Microsoft\Crypto\RSA\MachineKey 时的权限问题。我已经在我们的服务器中验证了对该文件夹的访问权限,并且一切正常。 'Everyone' 用户具有读写权限。所以理想情况下不应该有任何访问被拒绝错误。我什至明确授予了对 App Pool 身份的完全控制访问权限,但仍然无法正常工作。 我正在尝试了解还有什么可能导致此访问被拒绝问题。
【问题讨论】:
-
您可以尝试将您的用户指定为专用应用程序池的身份,更多信息您可以参考此链接:Application Pool Identities。
标签: asp.net iis x509certificate access-denied x509certificate2