Wcf 无法在WIF方案中使用证书对安全令牌进行签名

Wcf 无法在WIF方案中使用证书对安全令牌进行签名,wcf,x509certificate,wif,makecert,Wcf,X509certificate,Wif,Makecert,我正在尝试为我正在调查的WIF场景实现自定义STS,但失败了。尝试从用于签名令牌的证书获取私钥时失败。我使用以下配置创建STS: var signingCert = new X509Certificate2(@"C:\<path>\MySigningCertificate.pfx"); var config = new SecurityTokenServiceConfiguration() { DisableWsdl = true, T

我正在尝试为我正在调查的WIF场景实现自定义STS,但失败了。尝试从用于签名令牌的证书获取私钥时失败。我使用以下配置创建STS:

var signingCert = new X509Certificate2(@"C:\<path>\MySigningCertificate.pfx");
var config
    = new SecurityTokenServiceConfiguration()
    {
        DisableWsdl = true,
        TokenIssuerName = "Tribold",
        SecurityTokenService = typeof(TriboldSecurityTokenService),
        SigningCredentials = new X509SigningCredentials(signingCert),
        CertificateValidationMode = X509CertificateValidationMode.Custom,
        CertificateValidator = new CertificateValidator()
    };

但后来失败了。我解决不了这个问题,请帮帮我

日内瓦(=AD FS 2.0)论坛的主题似乎涵盖了您报告的相同问题。因此,报告的解决方案可能会起作用,即“在启动
X509Certificate2
对象时指定
x509keystrageFlags.PersistKeySet
标志”。

如果在打开PFX文件时不必指定密码,我会感到惊讶。X509Certificate2,以字符串或SecureString的形式获取密码。

我偶然发现了那个论坛帖子并尝试了它。它不起作用,仍然给我“私钥不存在”错误。太令人沮丧了。我暂时不需要加密安全令牌(依赖于消息安全性),这让我陷入了下一个错误。我尝试了带密码保护私钥和不带密码保护私钥的证书-两者都产生了相同的错误。只是为了确认:当您查看带有mmc证书管理单元的证书属性时,它是否会说“您有一个与此证书对应的私钥”?@nzpcmad-是,证书上有一个挂锁,双击证书并查看其详细信息时也会显示此消息。我导入了从证书创建的.PFX文件。
Debug.Assert(signingCert.HasPrivateKey == true);