我知道SecurityToken序列化应该是一件简单的事情。过去使用Active STS的令牌完成了它。但是,现在当我尝试使用Passive STS流中的令牌时,从WriteToken方法获取错误
" X.509Certificate"中没有私钥。
我正在使用的非常直接的代码是:
StringBuilder sb = new StringBuilder();
var writer = XmlWriter.Create(new StringWriter(sb), new XmlWriterSettings { OmitXmlDeclaration = true });
SecurityTokenHandlerCollection handlers = SecurityTokenHandlerCollection.CreateDefaultSecurityTokenHandlerCollection();
SecurityTokenHandler handler = handlers[securityToken];
handler.WriteToken(writer, securityToken);
此代码需要位于STS的客户端,证书私钥显然不在那里。
我该如何解决这个问题?
答案 0 :(得分:0)
呀!得到了答案!
我在.Net 4.5中混合.Net 3.5基于Microsoft.IdentityModel.dll的代码。一旦我移动上面的代码将令牌序列化为.Net 4.5,它就按预期工作了。
(最近2天我一直在讨论这个问题:()