我正在使用azure实现ADFS身份验证,但我面临以下问题:
类型的例外 ' System.Configuration.ConfigurationErrorsException'发生在 System.IdentityModel.Services.dll但未在用户代码中处理
其他信息:ID1024:配置属性值无效。
物业名称:serviceCertificate
错误:' ID1039:无法访问证书的私钥。 确保证书的私钥上的访问控制列表(ACL) 授予对应用程序池用户的访问权限。
指纹:' df113454dsf1321(此处的值我更改了值)''
当我右键单击证书然后单击所有任务时,它不显示管理私钥的选项并授予IIS用户访问权限。 我是如何解决这个问题的。 web.config文件内容:
<serviceCertificate>
<certificateReference x509FindType="FindByThumbprint" findValue="dfdsfdfdf(here I changed the value)" storeLocation="LocalMachine" storeName="My" />
</serviceCertificate>
答案 0 :(得分:9)
我遇到了同样的问题。修复方法是,允许AppPool用户(NETWORK SERVICE)读取证书私钥。
谢谢, Shivesh
答案 1 :(得分:0)
请检查特定应用程序的“应用程序池”设置。 在应用程序池高级设置中:标识应为NetworkService。
答案 2 :(得分:-1)
即使您拥有证书,也可能没有在正确的位置安装私钥。我得到了同样的错误,但添加正确的用户(IIS AppPool \ DefaultAppPool)是不够的。我也导入了.pfx:
在Windows 7上
- 打开MMC
- 添加证书管理单元以管理本地计算机
- 右键单击个人存储,所有任务 - >导入
- 选择.pfx文件(不是默认的.crt / .cer)
- 输入密码,完成向导
这让我的本地网站正常工作,而Google Googled没有其他工作。