Wcf 无法在WIF方案中使用证书对安全令牌进行签名
我正在尝试为我正在调查的WIF场景实现自定义STS,但失败了。尝试从用于签名令牌的证书获取私钥时失败。我使用以下配置创建STS: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
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);