即使在ACL权限(对于某些用户)之后,我们也收到以下错误(关于asp.net网站)在应用加密时。解析器错误消息:无法使用提供程序“RsaProtectedConfigurationProvider”进行解密。来自提供商的错误消息:无法打开RSA密钥容器。注意:请参阅下面我们遵循的步骤。(我们已将ACL权限授予NetFrameworkConfigurationKey上的NTAuthority网络服务)注意:我们在IIS7中使用启用Windows身份验证和启用ASP.NET模拟。它在WindowsServer2008中运行。访问是根据用户是否属于允许的AD组(将在配置文件中列出)来控制的。有趣的是,当group1的用户(来自location1)访问它时会发生此错误。当group2的用户(来自locatiob2)尝试访问它时,不会发生错误。关于如何纠正它的任何想法?我们已按照部署文档中列出的以下步骤进行操作。在管理员模式下运行命令窗口。(在WindowsServer2008中,键入cmd并按CTRL+SHIFT+ENTER)使用更改目录命令(cd)转到文件夹C:WindowsMicrosoft.NetFrameworkv4.0.30319。键入以下命令以创建RSA密钥容器。aspnet_regiis-pc"NetFrameworkConfigurationKey"--exp输入以下内容(添加ACL以访问RSA密钥容器)并按回车键aspnet_regiis-pa"NetFrameworkConfigurationKey""NTAuthorityNetworkService"输入以下内容(将突出显示的文本替换为已部署的服务),然后按Enter以加密服务的Web.Config中的连接字符串。aspnet_regiis.exe-pef"connectionStrings""C:MyWCFServiceName"键入以下内容(将突出显示的文本替换为网站部署的位置后)并按Enter以加密网站的Web.Config中的连接字符串。aspnet_regiis.exe-pef"connectionStrings""C:MyWebWebsiteName"键入以下内容(在将突出显示的文本替换为网站的web.config文件可用的位置之后)并按Enter以在sessionState值中加载网站的Web.Config。aspnet_regiis.exe-pef"system.web/sessionState""C:\MyWebWebsiteName"验证连接字符串和SessionState值是否已加密。以下详细信息在validationMachine.Config中的configProtectedData部分。?validationdefaultProvider="RsaProtectedConfigurationProvider"?validationkeyContainerName="NetFrameworkConfigurationKey"注意:machine.config默认位置是C:\WINDOWS\Microsoft.NETFrameworkv4.0.30319Config以下是我试过的不涉及机器配置的方法。注意:如果目标是在WindowsServer2008中,则需要在WindowsServer2008本身中执行加密步骤。在服务器A中执行以下代码注意:-注册表项cdC:WINDOWSMicrosoft.NETFrameworkv4.0.30319aspnet_regiis.exe-pc"MyProjectKeys"-exp注意:-仅在服务器A上授予访问权限aspnet_regiis.exe-pa"MyProjectKeys""IISAPPPOOLtestpsreloservices"aspnet_regiis.exe-pa"MyProjectKeys""NTAUTHORITYNETWORK"导出的包含RSA密钥的XML文件aspnet_regiis.exe-px"MyProjectKeys"E:wmappswebrootmyserviceMyProjectKey.xml–pri在web.config中添加以下内容加密aspnet_regiis-pef"connectionStrings""E:wmappswebrootmyservice"-prov"RsaProtectedConfigurationProvider"复制B服务器中的加密文件。将密钥xml文件复制到B服务器。使用以下命令创建批处理文件并执行(用于密钥注册和授予访问权限)c:cdC:WINDOWSMicrosoft.NETFrameworkv4.0.30319aspnet_regiis.exe-pi"MyProjectKeys"E:wmappswebrootmyserviceMyProjectKey.xmlaspnet_regiis.exe-pa"MyProjectKeys""IISAPPPOOLtestpsreloservices"aspnet_regiis.exe-pa"MyProjectKeys""NTAUTHORITYNETWORK"如果启用模拟,RSA密钥容器将作为访问应用程序的用户访问,而不是网络服务。您可能需要禁用模拟,或将所有可以访问该应用程序的用户添加到密钥容器的ACL。以上就是C#学习教程的全部内容:ACL权限后仍报“UnabletoopentheRSAkeycontainer”(部分用户)。如果对大家有用,需要进一步了解C#学习教程,希望大家多多关照——本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
