Serialization SamlSecurityToken序列化

Serialization SamlSecurityToken序列化,serialization,Serialization,我知道SecurityToken序列化应该很简单。过去曾使用来自活动STS的令牌进行过此操作。然而,现在当我试图使用来自被动STS流的令牌来执行此操作时,从WriteToken方法中得到一个错误 “X.509证书中不存在私钥” 我使用的非常直接的代码是: StringBuilder sb = new StringBuilder(); var writer = XmlWriter.Create(new StringWriter(sb), new XmlWriterS

我知道SecurityToken序列化应该很简单。过去曾使用来自活动STS的令牌进行过此操作。然而,现在当我试图使用来自被动STS流的令牌来执行此操作时,从WriteToken方法中得到一个错误

“X.509证书中不存在私钥”

我使用的非常直接的代码是:

        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的客户机中,其中证书私钥显然不在那里

我该怎么解决这个问题呢?

是的!知道答案了

我在.Net 4.5中混合了基于.Net 3.5 Microsoft.IdentityModel.dll的代码。一旦我移动了上面的代码将令牌序列化到.NET4.5中,它就按预期工作了

(在过去的两天里,我一直在用头撞这个:()